2013-03-26 106 views
0
屬性值

鑑於這樣的XML:XSLT讓孫節點模板

<?xml version="1.0" encoding="UTF-8"?> 
<Products> 
    <Product someId="1EFAD9659EC"> 
    <Identifiers> 
     <Identifier Id="234532423" Name="globalTradeItemNumber (GTIN)" Value="00671657621322" /> 
     <Identifier Id="99845898" Name="Internal Supplier Part #" Value="DEL 20 10B015000" /> 
     <Identifier Id="49348598" Name="MFG Model # (Series)" Value="DEL 20 10B015000" /> 
     <Identifier Id="439854985" Name="MFG Part # (OEM)" Value="DEL 20 10B015000" /> 
     <Identifier Id="2349832489" Name="UPC" Value="671657621322" /> 
    </Identifiers> 
    </Product>  
    <Product someId="1EFAD9659EC"> 
    <Identifiers> 
     <Identifier Id="234532423" Name="globalTradeItemNumber (GTIN)" Value="51651518" /> 
     <Identifier Id="99845898" Name="Internal Supplier Part #" Value="TIM 20 10B015000" /> 
     <Identifier Id="49348598" Name="MFG Model # (Series)" Value="TOM 20 10B015000" /> 
     <Identifier Id="439854985" Name="MFG Part # (OEM)" Value="TAK 20 10B015000" /> 
     <Identifier Id="2349832489" Name="UPC" Value="87468387468" /> 
    </Identifiers> 
    </Product>  
     . . . 

我想要的東西,如

... 
    <Product upc="671657621322"/> 
    <Product upc="87468387468"/> 
... 

結束了。但我得到的是

... 
    <Product upc="true"/> 
    <Product upc="true"/> 
... 

我不斷收到我的選擇布爾答案,而不是屬性的值。我在這裏做錯了什麼愚蠢的事情?這是我想要的XSLT:

... 
    <xsl:template match="/"> 
     <Output> 
      <xsl:apply-templates /> 
     </Output> 
    </xsl:template> 

    <xsl:template match="Product"> 
     <xsl:variable name="productCode" select="./Identifiers/Identifier/@Name='UPC'"/> 
     <Product upc="{$productCode}"> 
     </Product> 
    </xsl:template> 
... 

謝謝。

回答

2

您正在使用錯誤的xpath選項。用途:

select="Identifiers/Identifier[@Name='UPC']/@Value" 
0

如果你只打算與這兩個節點的值與模板匹配他們:

<xsl:template match="Product/Identifiers/Identifier[@Name='UPC']"> 
    <xsl:variable name="productCode" select="@Value"/> 
    <Product upc="{$productCode}"> 
    </Product> 
</xsl:template> 
+0

尼斯。在這種情況下,我實際上需要很多其他的東西,但是我會將它們存檔以供將來使用。謝謝! – Mike 2013-03-27 11:57:11