我有以下示例xml。根据制造商ID,我希望获得与之对应的所有产品名称。
<root>
<Component ID="88" BusinessID="ABC">
<Product_Name>Apple iPhone 4 16GB Black</Product_Name>
<Product_Description>Apple iPhone 4 8GB Black</Product_Description>
<Manufacturer ID="1122" xsi:type="MobileHandset_Manufacturer">
<Name>Apple</Name>
<Description>Apple</Description>
</Manufacturer>
</Component>
<Component ID="98" BusinessID="LMN">
<Product_Name>Apple iPhone 4 16GB White</Product_Name>
<Product_Description>Apple iPhone 4 8GB White</Product_Description>
<Manufacturer ID="1122" xsi:type="MobileHandset_Manufacturer">
<Name>Apple</Name>
<Description>Apple</Description>
</Manufacturer>
</Component>
<Component ID="77" BusinessID="XYZ">
<Product_Name>Samsung Galaxy 16GB Green</Product_Name>
<Product_Description>Samsung Galaxy 16GB Green</Product_Description>
<Manufacturer ID="1177" xsi:type="MobileHandset_Manufacturer">
<Name>Samsung</Name>
<Description>Samsung</Description>
</Manufacturer>
</Component>
</root>
因此,使用ID 1122,我想得到以下产品名称: Apple iPhone 4 16GB黑色 Apple iPhone 4 8GB白色
你能帮我构建一下xpath查询吗?
答案 0 :(得分:0)
您可以使用此查询:
//Component[Manufacturer[@ID='1122']]/Product_Name/text()
或者根据您对结果所做的操作,您可能希望将“/ text()”位置保留在最后。
如果您只需要获取唯一值,并且可以使用XPath 2.0,则可以将上面的地址包装在distinct values函数中:
distinct-values(//Component[Manufacturer[@ID='1122']]/Product_Name/text())