2017-03-22 5 views
0

J'ai un code XML et XSL, les produits ont des images et une description. Je veux ajouter ces images dans l'étiquette de description.Comment obtenir la valeur de l'élément XML en utilisant XSL

<images> 
    <img_item type_name="">http://www.example.com.tr/ExampleData/example1.jpg</img_item> 
    <img_item type_name="">http://www.example.com.tr/ExampleData/example2.jpg</img_item> 
    <img_item type_name="">http://www.example.com.tr/ExampleData/example3.jpg</img_item> 
</images> 

j'écrire un code XSL comme celui-ci (mais il ne reçoit pas de valeur img_type):

 <Description> 
     <xsl:for-each select="images/img_item"> 
      <xsl:text><![CDATA[<br/><img src="]]></xsl:text> 
      <xsl:value-of select="images/img_item"/> 
      <xsl:text><![CDATA[" />]]></xsl:text> 
     </xsl:for-each> 
     </Description> 

Mon code ne fonctionne pas. Comment puis-je obtenir la valeur de img_type (comment puis-je obtenir ces liens.)

Répondre

1

La raison pour laquelle vous n'obtenez pas et la valeur est parce que sont déjà positionnés sur le img_item, et votre sélection xsl:value-of sera relative à cela. Donc, il vous suffit de le faire ...

<xsl:value-of select="." /> 

Howver, vous devriez éviter d'utiliser CDATA d'écrire des balises (à moins que vous ne les voulez vraiment à être échappés). Il suffit d'écrire sur l'élément que vous voulez directement

<xsl:template match="/"> 
    <Description> 
    <xsl:for-each select="images/img_item"> 
     <br /> 
     <img src="{.}" /> 
    </xsl:for-each> 
    </Description> 
</xsl:template> 

Notez l'utilisation de Attribute Value Templates pour écrire la valeur d'attribut src.

+0

Cette solution a fonctionné. Merci :) –