2013-10-08 3 views
0

XML 파일이 아래 형식으로되어 있습니다. 여기에서 수행중인 작업은 공통 노드의 파일을 통해 반복적으로 수행하는 것입니다. 일반적인 노드 내부의 주석은 throw됩니다. getAttribute ("name")이 지원되지 않는다는 오류가 있습니다 .. 누군가가 자식 노드를 통해 루프하는 방법을 설명하고 주석 처리 된 행을 읽지 않도록 할 수 있습니까?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를 처리하는 대신 test4와 test4를 모두 처리하는 것입니다. – user505210

+0

당신의 대답은 거의 효과가 있었지만해야합니다 ./file – user505210

+1

방금 ​​전 전체 테스트 스 니펫으로 답안을 업데이트했고 제대로 작동합니다. "모두 4를 함께 처리"하는 것과 같은 것은 없습니다. 각 노드는 개별적으로 처리됩니다. XPath를 사용하면 모든 문서 구조를 가로 질 필요가 없지만 필요한 것을 직접 검색하여 일을 빠르게 처리 할 수 ​​있습니다. –