2017-02-28 10 views
1

質問はかなりばかげていますが、私は完全に固執しています。条件に基づいてノードの子ノードを抽出したいXMLは次のとおりです。XPathでのXMLの使用

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<products xmlns="http://xml.netbeans.org/schema/products"> 
    <product> 
     <productID>1</productID> 
     <picture>1000</picture> 
     <productName>abc</productName> 
     <price>400</price> 
    </product> 
    <product> 
     <productID>2</productID> 
     <picture>2000</picture> 
     <productName>bcd</productName> 
     <price>275</price> 
    </product> 
</products> 

containsとcontainsを使用したいと思います。

私の式は次のとおりです。//*[local-name()='products' and contains(productName,'a')]

しかし、働いていません。

私は何をすべきか考えていますか?私はあなたがproductタグを取得するとしますので、これを助けることができる

答えて

1

'//*[local-name()="products"]/*[local-name()="product" and contains(./*[local-name()="productName"], "a")]' 
0

私は(ローカル名を使用したい)とが含まれています。

このXPathの、

//*[local-name()='productName' and contains(., 'a')]/.. 

が要求されるように、文字列値'a'が含まれていたものproductNameのすべての要素の親要素を選択するlocal-name()とを使用しています。