1

我有以下示例 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 查询吗?

4

1 回答 1

0

您可以使用此查询:

//Component[Manufacturer[@ID='1122']]/Product_Name/text()

或者根据您对结果的处理方式,您可能希望将“/text()”位留在末尾。

如果您只需要获取唯一值,并且可以使用 XPath 2.0,则可以将上面的地址包装在 distinct values 函数中:

distinct-values(//Component[Manufacturer[@ID='1122']]/Product_Name/text())
于 2013-11-05T18:42:16.237 回答