0

我如何读取 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>
4

1 回答 1

0

有一种专门为此类任务设计的查询语言。它被称为 XPath。您可以使用它从 XML 树中选择特定节点,方法是指定类似于您从操作系统或 Web 地址中知道的路径。它还使您能够指定各种条件,这些条件决定了您选择的节点。

让我们看几个例子。

您可以使用这样的 XPath 查询从由其id属性值指定的组中选择所有产品代码:

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

要从特定组中获取具有特定 ID 的产品,您需要添加另一个条件。以下查询还要求Product元素有一个名为productCode'的子元素aab'

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

也可以不指定文档的整个结构,只需要一个Product元素位于文档中的某个位置,而不必位于作为 Restaurant 子级的 ProductGroup 中。

//Product[productCode='cch']

有许多关于 XPath 的教程将帮助您了解这种简单的语言。它功能强大、易于理解、实现广泛,并且不需要您的代码冗长。

要在 Java 应用程序中使用它的强大功能,请查看 XPath API:http: //ibm.com/developerworks/library/x-javaxpathapi/index.html

于 2012-06-05T09:48:49.890 回答