Bonjour
Je commence à bricoler un peu avec Xslt.
J'ai un document XML dont l'un des noeuds contient de l'XML sous forme de texte.
Exemple:
<SRM2XML>
<ID_APP>201105091500206098656937</ID_APP>
<CLIENT_REF>1234567890</CLIENT_REF>
<Bureau_Response>
<id_aplcnt>1</id_aplcnt>
<ds_set_parm>Company Trading History</ds_set_parm>
<tx_data_bu><BCAmessage service-request-id="00762535475" type="RESPONSE">
<BCAservice-code>BCA020</BCAservice-code>
<BCAservice-code-version>V00</BCAservice-code-version>
</BCAmessage>
</tx_data_bu>
</Bureau_Response>
</SRM2XML>
J'ai besoin de traiter dans la même feuille XSLT des éléments du node <SRM2XML> et des éléments du node <tx_data_bu>.
J'ai tenté de charger le contenu de <tx_data_bu> dans une variable:
<xsl:variable name="xml-string">
<xsl:value-of select="SRM2XML/Bureau_Response/tx_data_bu"/>
</xsl:variable>
<xsl:value-of select="$xml-string/BCAmessage/BCAservice-code"/> ne fonctionne pas.
J'ai essayé d'utiliser exsl:node-set():
<xsl:variable name="xml-node">
<xsl:value-of select="exsl:node-set($xml-string)"/>
</xsl:variable>
<xsl:value-of select="$xml-node/BCAmessage/BCAservice-code"/>
Par contre, si je remplace (avec mon éditeur) < et > par < et >, alors çà fonctionne.
J'utilise saxon 9.1.0.2 en XSL 2.0
Merci pour votre aide.
Partager