Création de la section CDATA est déroutant
Je suis en train de créer CDATA section dans le champ description, mais à défaut. Le code est assez simple, mais dans le XML résultant d'une section CDATA n'apparaît pas!!
Node de = document.createElement("description");
de.appendChild(document.createCDATASection(reportData.getIssue().getDescription() + "more]]>data"));
e.appendChild(de);
Dans le résultat XML, j'obtiens:
<description>Room #1128 has AD issues.more]]>data</description>
Ce que je fais mal?!
Pourquoi êtes-vous de placer
N'a pas d'importance! Je veux voir CDATA en XML résultant, où est-il?
Le problème est que si vous mettez ">" dans un CDATA section, vous allez être ">" non ">" lorsqu'il est interprété en arrière. Ce que vous voyez est à peu près la seule façon de préserver la ">"...
]]>
dans le texte? Sûrement le createCDATASection
va générer que de trop?N'a pas d'importance! Je veux voir CDATA en XML résultant, où est-il?
Le problème est que si vous mettez ">" dans un CDATA section, vous allez être ">" non ">" lorsqu'il est interprété en arrière. Ce que vous voyez est à peu près la seule façon de préserver la ">"...
OriginalL'auteur xchg.ca | 2010-10-04
Vous devez vous connecter pour publier un commentaire.
La séquence
]]>
met fin à une section CDATA, et donc ne peut pas apparaître dans une section CDATA.Votre bibliothèque XML est la récupération par l'amerrissage forcé la section CDATA, et à l'aide des entités de caractères qui aurait une signification particulière.
Depuis
<foo><![CDATA[Hello, world>]]></foo>
et<foo>Hello, world></foo>
sont équivalentes, ce n'est pas un problème (à moins que quelqu'un essaie d'analyser le document XML obtenu avec un outil qui n'est pas un analyseur XML, où se trouve la folie).Pas tellement "pas nécessaire" comme "non valide".
Je n'appellerais pas ça "non valide". Si la chaîne à l'intérieur CDATA contient un "]]>" une bonne CDATA de mise en œuvre doivent diviser la chaîne en deux sections CDATA.
Pourquoi je ne vois aucune section CDATA? Ce serait XML résultant si mon code sera: de.appendChild(document.createCDATASection(reportData.getIssue().getDescription()));
Comme ma réponse dit, vous ne voyez pas une section CDATA parce que vous ne pouvez pas stocker les données que vous avez à l'aide d'une section CDATA.
OriginalL'auteur Quentin
Vous devez spécifier section CDATA élément(s).
Vous pouvez le faire comme ceci;
si vous souhaitez spécifier plus d'une section CDATA élément utiliser le blanc de l'espace comme délimiteur.
Code Complet
Résultat sera comme ceci;
Si nous voulons appliquer votre exacte de l'échantillon (avec vos données + "]]");
Alors le résultat sera comme ceci;
OriginalL'auteur azizunsal
Utiliser la méthode ci-dessous:
OriginalL'auteur Aftab
Vous ne pouvez pas écrire un
>
dans les Données XML.C'est la fuite en
>
(supérieur) àAvis que le Plus De signe gâchera votre
</description>
balise parce que ses le début d'une balise de fin.Vous pouvez lire à ce sujet ici (entre autres)
OriginalL'auteur Itsik