Comment insérer CDATA en XML de balisage de texte exporté à partir d'Access 2003?
J'ai un export XML à partir d'Access 2003 et j'ai essayé d'insérer une balise CDATA sur le champ de texte (en latin...) avec XSLT, mais je suis très mauvais en XSLT...
Ici la source XML :
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MESSAGES%20old.xsd" generated="2012-07-31T13:25:46">
<export_x005F_xml_message>
<libelle>h euismod tincidu </libelle>
<price>300</price>
<libelle2>h euirci tation ullamc</libelle2>
</export_x005F_xml_message>
<export_x005F_xml_message>
<libelle>h euismod tincidunt ut lao</libelle>
<price>200</price>
<libelle2>h euirci tation ullamcorper</libelle2>
</export_x005F_xml_message>
</dataroot>
Ici mon XSLT du début... :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match='*[name() = "MESSAGES"]'>
<xsl:text disable-output-escaping="yes">
<![CDATA[
</xsl:text>
<xsl:copy-of select="./node()"/>
<xsl:text disable-output-escaping="yes">
]]>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
Je voudrais obtenir quelque chose comme ça :
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MESSAGES%20old.xsd" generated="2012-07-31T13:25:46">
<export_x005F_xml_message>
<libelle><![CDATA[h euismod tincidu ]]></libelle>
<price>300</price>
<libelle2><![CDATA[h euirci tation ullamc ]]></libelle>
</export_x005F_xml_message>
<export_x005F_xml_message>
<libelle><![CDATA[h euismod tincidunt ut lao ]]></libelle2>
<price>200</price>
<libelle2><![CDATA[h euirci tation ullamcorper ]]></libelle2>
</export_x005F_xml_message>
</dataroot>
Pouvez-vous m'aider à créer le droit XSLT ?
Ce XML est à venir à partir d'Access 2003 qui ne fournit pas la CDATA option pour le champ de texte... je suis sûr qu'un modèle générique pourrait aider d'autres développeurs comme moi 🙂
La réponse ici stackoverflow.com/questions/1502083/...
OriginalL'auteur Jim 007 | 2012-07-31
Vous devez vous connecter pour publier un commentaire.
Comme déjà répondu ici: Transformer des données XML avec XSLT et de préserver CDATA (en Ruby), une meilleure solution est d'utiliser xsl:output. Par exemple ...
OriginalL'auteur Sean B. Durkin
Cette transformation de l'identité:
lorsqu'il est appliqué sur le document XML fourni par le (corrigé comme il a été gravement malformé):
produit le voulait, résultat correct:
Explication:
Bonne utilisation de la
cdata-section-elements
attribut dexsl:output
.OriginalL'auteur Dimitre Novatchev
Bien, le seul problème que je vois est l'appel de la xsl-modèle.
Il devrait ressembler à ceci:
De sorte que votre modèle devrait ressembler à ceci:
OriginalL'auteur Leonkur