0

javaを使用して2番目のノードの製品グループに基づいた製品であるxmlの3番目のノードを読み取るにはどうすればよいですか。商品コードに基づいて商品を入手したい

            <?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 と呼ばれます。これを使用して、オペレーティング システムまたは Web アドレスから既知のものと同様のパスを指定することにより、XML ツリーから特定のノードを選択できます。また、選択するノードを決定するさまざまな条件を指定することもできます。

いくつかの例を見てみましょう。

次のような XPath クエリを使用して、id属性の値で指定されたグループからすべての製品コードを選択できます。

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

特定のグループから特定の ID を持つ製品を取得するには、別の条件を追加する必要があります。次のクエリでは、要素が ' の値でProduct呼び出される子要素を持つことも必要です。productCodeaab'

/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 に答える