2017-02-28 80 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> 

我想使用local-name()與contains。

我的表達是://*[local-name()='products' and contains(productName,'a')]

但不工作。

有沒有人有任何想法我應該做什麼?

回答

1

我假設你想要得到的product標籤,所以這可能幫助:

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

我想與包含使用本地名稱()。

此XPath,

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

使用local-name()和選擇那些productName元素,其字符串值中包含'a'的所有父元素的要求。