0

我有一个要使用 VBScript(技术限制)读取的 xml 文件。下面是代码和xml文件。如果不涉及 DTD 元素,我可以读取该文件,但该代码不适用于具有 DTD 和 xml 样式元素的文件。

代码-

Dim xmlDoc1:Set xmlDoc1 = CreateObject("MSXML2.DomDocument")
xmlDoc1.async=False
xmlDoc1.load "C:\ABC.xml"
Dim xmlTCID:Set xmlTCID = xmlDoc1.selectNodes("//*")
For nNodeCount = 0 To xmlTCID.length
MsgBox(xmlTCID(nNodeCount).nodeName)
Next    

ABC.xml -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE RESULT SYSTEM "Result.dtd"[]>
<?xml-stylesheet type="text/xsl" href="Result.xsl"?>
<SUMMARY>
<TITLE>Test</TITLE>
</SUMMARY>
<IDS>
    <DATA>
      <NAME>A</NAME>
      <VALUE>PASS</VALUE>
    </DATA>
    <DATA>
      <NAME>B</NAME>
      <VALUE>PASS</VALUE>
    </DATA
    <DATA>
       <NAME>C</NAME>
        <VALUE>FAIL</VALUE>
      </DATA
   </IDS>   
    <IDS>
     <DATA>
       <NAME>A</NAME>
        <VALUE>PASS</VALUE>
     </DATA>
     <DATA>
         <NAME>B</NAME>
         <VALUE>FAIL</VALUE>
      </DATA
  </IDS>

注意 - 如果我避免 -

<!DOCTYPE RESULT SYSTEM "Result.dtd"[]>
<?xml-stylesheet type="text/xsl" href="Result.xsl"?>

上面的代码能够读取节点,但上面两行在 xml 文件中,它给出了以下错误 -

在此处输入图像描述

要求 - 我需要为每个 IDS 节点读取带有 FAIL 的最后一个 DATA 节点的名称。

任何关于如何使代码工作的建议,即使是 -

<!DOCTYPE RESULT SYSTEM "Result.dtd"[]>
<?xml-stylesheet type="text/xsl" href="Result.xsl"?>
4

2 回答 2

0

由于您的 XML 存在问题 - 不止一个顶级元素,miising ">" - 将ProhibitDTD 属性设置为False不会解决您的所有任务。

于 2013-02-14T12:19:23.913 回答
0
xmlDoc.validateOnParse=False

为我工作。

于 2013-02-14T13:43:56.993 回答