2013-12-03 5 views
-1

Я хочу, чтобы получить signation от каждого вхож с помощью Еогеасп выберите = commandes/COMMANDEЕогеасп выберите узел XSLT

<root> 
<commandes> 
    <commande date="2012-12-05" numero="c1001"> 
     <entree ref="p1012732NC" prix="39.98" quantite="2" /> 
     <entree ref="p2203633" prix="149" quantite="1" /> 
     <entree ref="p2103625E" prix="249" quantite="1" /> 
     <entree ref="p3317" prix="325" quantite="2" /> 
    </commande> 
    <commande date="2012-12-06" numero="c1002"> 
     <entree ref="p22651-02" prix="99.99" quantite="3" /> 
     <entree ref="p2212807DE" prix="79.98" quantite="2" /> 
     <entree ref="p5418151" prix="129" quantite="1" /> 
    </commande> 
</commandes> 
<produits> 
    <produit type="chemise" promo="no"> 
     <reference>p1012732NC</reference> 
     <signation>CHEMISE MARCO FERRERA</signation> 
     <prixNormal>39.98</prixNormal> 
     <prixPromo/> 
     <image>w10-1012732nc-tq.jpg</image> 
    </produit> 
</produits> 
</root> 

МОЙ XSL:

<xsl:template match="/catalogue"> 
    <xsl:for-each select="commandes/commande"> 
    <xsl:value-of select="idref(@ref)"/> 
    </xsl:for-each> 
</xsl:template> 

Как я могу сделать это с помощью XSL?

+1

Вы пытались решить проблему самостоятельно? Можете ли вы показать свой XSLT до сих пор? –

+0

Непонятно, что вы подразумеваете под «Я хочу получить подпись». Пожалуйста, уточните, какой результат вы ожидаете. –

ответ

1

Возможно, вы захотите прочитать здесь xsl: key, так как это то, что вы можете использовать для поиска значений с других узлов. Похоже, вы хотите посмотреть на produkt элемент на основе его ссылка. В этом случае, вы должны определить ключ, как так:

<xsl:key name="idref" match="produit" use="reference" /> 

Тогда вызвать его для конкретной ссылки, вы могли бы сделать это

<xsl:value-of select="key('idref', 'p1012732NC')" /> 

Это вернет Produit элемент. Если вы хотите значение signation, вы могли бы сделать это

<xsl:value-of select="key('idref', 'p1012732NC')/signation" /> 

Более обычно, вы могли бы назвать его, используя значение существующего элемента или атрибута. В вашем случае это похоже на атрибут ref на элемент - это то, что вы использовали бы. Поэтому ваш код будет выглядеть так:

<xsl:for-each select="commandes/commande/entree"> 
    <xsl:value-of select="key('idref', @ref)/signation"/> 
</xsl:for-each> 
Смежные вопросы