2013-10-08 140 views
0

我有一个XML文件,格式如下。我在这里做的是通过公共节点中的文件并循环它们。问题是公共节点中的注释抛出一个错误,说getAttribute(“名称”)不支持..可以有人请告诉我如何循环通过子节点,并避免阅读评论行。读取VBSCript中的XML文件节点

Set objNodeList = xmlDoc.getElementsByTagName("Common") 

For each comNodeItem in objNodeList 

    On Error Resume Next 
    for each fileNodeItem in comNodeItem.ChildNodes   

     fileName = fileNodeItem.getAttribute("name") 



    next 

    <Common> 
     <!-- Test Comment --> 
     <file name="Test1.css"/> 
      <file name="Test2.css"/> 
    </Common> 
    <Common> 
     <!-- Test Comment --> 
     <file name="Test3.css"/> 
      <file name="Test4.css"/> 
    </Common> 
+0

请描述您尝试解决的实际问题,而不是您认为的解决方案。为什么你认为你需要处理由父节点分组的子节点? –

回答

0

您可以考虑尝试下面的代码片段。

Set xmlDoc = CreateObject("MSXML.DomDocument") 
xmlDoc.LoadXML "<Common><!-- Test Comment --><file name='Test1.css'/><file name='Test2.css'/></Common>" 
For Each xmlFile in xmlDoc.selectNodes("//file") 
    MsgBox xmlFile.getAttribute("name") 
Next 
+0

它不能正常工作......它正在做的是忽略父节点并一起处理所有子节点。而不是处理test1和test2.css,然后test3和test4.css它将所有4个处理在一起。 – user505210

+0

你的答案几乎奏效,但它应该是./file – user505210

+1

我刚刚更新我的答案与我的完整测试代码片段,它的工作原理。没有“一起处理所有4个”这样的事情:每个节点都单独处理。使用XPath,你不需要横切所有的文档结构,但是你可以通过直接搜索你需要的东西来加快速度。 –