2012-06-05 103 views
0

如何讀取基於使用java的第二個節點產品組的產品的xml的第三個節點。我想根據產品代碼獲得產品讀取基於java中第二個節點的xml的第三個節點

  <?xml version="1.0" encoding="UTF-8"?> 
      <Restaurant> 
       <ProductGroup id="1"> 
        <label>BURGERS</label> 
        <image_url>burger.png</image_url> 
        <Product> 
         <label>Hamburger</label> 
         <productCode>aab</productCode> 
         <img_url>Hamburger.png</img_url> 
         <price>129.46</price> 
        </Product> 
        <Product> 
         <label>Cheeseburger</label> 
         <productCode>cch</productCode> 
         <img_url>Cheeseburger.png</img_url> 
         <price>129.46</price> 
        </Product>  
       </ProductGroup> 
       <ProductGroup id="2"> 
        <label>FRIES/ONION RING</label> 
        <image_url>friesonionring.png</image_url> 
        <Product> 
         <label>Fries</label> 
         <productCode>FRS</productCode> 
         <img_url>fries.png</img_url> 
         <price>50.46</price> 
        </Product> 
        <Product> 
         <label>Onion Rings</label> 
         <productCode>ONR</productCode> 
         <img_url>onionring.png</img_url> 
         <price>50.46</price> 
        </Product>  
       </ProductGroup> 
      </Restaurant> 
+1

所以,你想在一個特定的類別,以獲取產品代碼,對不對?您可以使用像這樣的「/ Restaurant/ProductGroup [@ id ='2']/Product/productCode」的XPath查詢...或者從特定組中獲取具有特定ID的產品:「/ Restaurant/ProductGroup [ id ='2']/Product [productCode ='aab']「...或者這個從文檔的任何位置獲取特定產品」// Product [productCode ='cch']「...查看XPath API:http://www.ibm.com/developerworks/library/x-javaxpathapi/index.html – toniedzwiedz

+0

您需要爲java使用xml解析器。 [This](http://www.java-samples.com/showtutorial.php?tutorialid=152)可以幫助你。 – Ved

回答

0

有一種專門爲此類任務設計的查詢語言。它被稱爲XPath。您可以使用它從XML樹中選擇特定節點,方法是指定一個類似於您從操作系統或Web地址獲知的路徑。它還使您能夠指定各種條件,從而確定您選擇的節點。

讓我們來看幾個例子。

您可以使用XPath查詢這樣的,從它的id屬性的值指定的一組選擇所有產品代碼:

/Restaurant/ProductGroup[@id='2']/Product/productCode 

要從特定組獲得與特定標識的產品,你你想添加另一個條件。下面的查詢也需要Product元素具有與「aab'值稱爲productCode一個子元素:

/Restaurant/ProductGroup[@id='2']/Product[productCode='aab'] 

它也可以不指定文檔的整個結構,只需要一個Product元素某處在文檔中,而不一定在Restaurant的兒童產品組中。

//Product[productCode='cch'] 

有很多關於XPath的教程可以幫助您理解這種簡單的語言。它功能強大,易於理解,廣泛實施,不需要您的代碼冗長。

在Java應用程序中使用它的力量,檢查出的XPath API:http://ibm.com/developerworks/library/x-javaxpathapi/index.html

相關問題