基于java中的第二个节点读取xml的第三个节点
如何读取xml的第三个节点,即基于使用java的第二个节点产品组的产品。我想根据产品代码获取产品
<?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 楼答案
有一种专门为这类任务设计的查询语言。它叫做XPath。您可以使用它从XML树中选择特定节点,方法是指定一个类似于您从操作系统或web地址中知道的路径。它还使您能够指定各种条件,这些条件决定了您选择的节点
让我们看看几个例子。
您可以使用类似这样的XPath查询从由其
id
属性值指定的组中选择所有产品代码:要从特定组获取具有特定ID的产品,需要添加另一个条件。以下查询还要求
Product
元素具有名为productCode
的子元素,其值为aab'
:也可以不指定文档的整个结构,只要求
Product
元素位于文档中的某个位置,而不一定位于餐厅的子产品组中有很多关于XPath的教程可以帮助您理解这种简单的语言。它功能强大,易于理解,实现广泛,不需要代码冗长
要在Java应用程序中使用它的功能,请查看XPath API:http://ibm.com/developerworks/library/x-javaxpathapi/index.html