JScript讀取XML檔案需要考慮msxml組件的多個版本,穩妥的做法是將所有版本都列出來。
xml檔案的內容如下:
[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>
讀取該xml檔案的JScript如下:
[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)
{
//繼續嘗試更低版本
}
}
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("開啟xml檔案失敗: " + 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)
{
//繼續嘗試更低版本
}
}
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("開啟xml檔案失敗: " + 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);
}
}
}