2015-04-17 120 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前綴檢查。這是要完成的任務嗎? –

相關問題