To read XML files using JScript, you must consider multiple versions of the msxml component. A safe way is to list all versions.
The content of the xml file is as follows:
[Html]
<? Xml version = "1.0" encoding = "GB2312"?>
<Binary>
<Item name = "a.exe"/>
<Item name = "B. dll"/>
<Item name = "c. dll"/>
</Binary>
<? Xml version = "1.0" encoding = "GB2312"?>
<Binary>
<Item name = "a.exe"/>
<Item name = "B. dll"/>
<Item name = "c. dll"/>
</Binary>
The JScript used to read the xml file is as follows:
[Javascript]
Main ();
Function main ()
{
Var xmlDoc = null;
Var signatures = [
"Msxml2.DOMDocument. 6.0 ",
"Msxml2.DOMDocument. 5.0 ",
"Msxml2.DOMDocument. 4.0 ",
"Msxml2.DOMDocument. 3.0 ",
"Msxml2.DOMDocument ",
"Microsoft. XmlDom"];
For (var index = 0; index <signatures. length; index ++)
{
Try {
XmlDoc = new ActiveXObject (signatures [index]);
}
Catch (e)
{
// Continue to try a lower version
}
}
XmlDoc. async = false;
XmlDoc. resolveExternals = false;
Var strXmlPath = "D: \ test. xml ";
XmlDoc. load (strXmlPath );
If (xmlDoc. parseError. errorCode! = 0)
{
Var myError = xmlDoc. parseError;
WScript. Echo ("failed to open the xml file:" + myError );
}
Else
{
Var BinGroup = xmlDoc. getElementsByTagName ("Item ");
For (var I = 0; I <BinGroup. length; I ++)
{
Var strBinName = BinGroup. item (I). getAttribute ("name ");
WScript. Echo (strBinName );
}
}
}
Main ();
Function main ()
{
Var xmlDoc = null;
Var signatures = [
"Msxml2.DOMDocument. 6.0 ",
"Msxml2.DOMDocument. 5.0 ",
"Msxml2.DOMDocument. 4.0 ",
"Msxml2.DOMDocument. 3.0 ",
"Msxml2.DOMDocument ",
"Microsoft. XmlDom"];
For (var index = 0; index <signatures. length; index ++)
{
Try {
XmlDoc = new ActiveXObject (signatures [index]);
}
Catch (e)
{
// Continue to try a lower version
}
}
XmlDoc. async = false;
XmlDoc. resolveExternals = false;
Var strXmlPath = "D: \ test. xml ";
XmlDoc. load (strXmlPath );
If (xmlDoc. parseError. errorCode! = 0)
{
Var myError = xmlDoc. parseError;
WScript. Echo ("failed to open the xml file:" + myError );
}
Else
{
Var BinGroup = xmlDoc. getElementsByTagName ("Item ");
For (var I = 0; I <BinGroup. length; I ++)
{
Var strBinName = BinGroup. item (I). getAttribute ("name ");
WScript. Echo (strBinName );
}
}
}