2015-04-17 124 views
1

注:我处理XML文件,我不知道提前它们的结构,所以我不能使用XPath
这里是我的XML文件的例子:如何获取节点及其子节点使用节点的名称和特定的属性值?

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?> 
<HWData> 
    <Header time="2013-05-29T13:39:34" uploaded="true" version="1.0" /> 
    <NE vendorName="Nokia Siemens Networks" NEId="WBTS-431"> 
     <EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="173" > 
      <UNIT vendorName="N" unitId="16" /> 
      <UNIT vendorName="NOKIA SIEMENS NETWORKS" unitId="225" /> 
     </EQHO> 
     <EQHO vendorName="NSN" equipmentHolderId="40192" > 
      <UNIT vendorName="AR" unitId="40267" /> 
     </EQHO> 
    </NE> 
    <NE vendorName="Nokia Siemens Networks" NEId="WBTS-261"> 
     <EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="132" > 
      <EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="132-1"> 
      <UNIT vendorName="NN" unitId="1621" /> 
      </EQHO> 
     </EQHO> 
    </NE> 
</HWData> 

我想知道我是否可以使用例如节点名称“NE”和属性值NEID =“WBTS-261”作为结果的洞!

结果预计:

<NE vendorName="Nokia Siemens Networks" NEId="WBTS-261"> 
     <EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="132" > 
      <EQHO vendorName="Nokia Siemens Networks" equipmentHolderId="132-1"> 
      <UNIT vendorName="NN" unitId="1621" /> 
      </EQHO> 
     </EQHO> 
    </NE> 

有人可以把我放在正确的方式做到这一点的任何例子,想法或建议将感激.. 谢谢

回答

1

使用XPath。它有一种特殊的搜索语言来搜索xml中的元素。 See this page.

+0

EQHO的MOID是所有情况下UNIT子元素的MOID的前缀(在您的xml示例中)。这是不是真的?当总是真实的时候,找到所有EQHO元素然后列出他们的孩子就足够了。当不总是真时,那么对于UNIT MOID-s需要父母MOID前缀检查。这是要完成的任务吗? –

相关问题