2013-04-29 63 views
-1

这是我的XML文件simple.xml的精简版。如何通过祖先,父节点和子节点找到更复杂的特定节点

<Genealogy> 
    <grandParent> 
    <name>bob</name> 
    <surname>Carter</surname> 
    <Parent> 
     <tel_Number>0033689765498</tel_Number> 
     <mobile_Phone>2</mobile_Phone> 
    </Parent> 
    </grandParent> 
    <grandParent> 
    <name>jean</name> 
    <surname>Wright</surname> 
    <Parent> 
     <tel_Number>0033648245432</tel_Number> 
     <mobile_Phone>1</mobile_Phone> 
    </Parent> 
    </grandParent> 
</Genealogy> 

使用XPath表达式,是有可能无需遍历所有的节点,找到正确的/特定节点//grandParent/Parent其性质例如:

Parent      child of  grandParent 
    tel_Number="0033648245432"     name="jean" 

回答

1

尝试这样的XPath表达式:

//grandParent/Parent/tel_Number[text()='0033648245434' and ../../name/text()='jean'] 

有这样的代码:

name = "jean" 
phone = "0033648245434" 

Set xml = CreateObject("Msxml2.DOMDocument.6.0") 
xml.async = False 
xml.load "C:\path\to\simple.xml" 

expr = "//grandParent/Parent/tel_Number[text()='" & phone _ 
     & "' and ../../name/text()='" & name & "']" 

Set nodes = xml.selectNodes(expr) 

For n In nodes 
    WScript.Echo n.parentNode.nodeName 
Next 
相关问题