2011-09-10 3 views
1

Je parcours un document XML en utilisant w3c DOM et j'ai besoin d'envelopper la sous-chaîne du contenu textuel dans un org.w3c.dom.Element avec un tag basé sur une logique métier.Comment faire pour envelopper le contenu du texte XML avec une balise XML en Java?

Par exemple, je veux tourner

<title id="1">Java is a cool programming language</title> 

dans

<title id="1">Java is a <blah id="2">cool</blah> programming language</title> 

Je n'insiste pas sur l'utilisation de la bibliothèque DOM w3c pour mon application pour toutes les suggestions sont les bienvenues en termes d'autres bibliothèques cela pourrait accomplir cela.

Répondre

1

Tout le texte d'un document XML sera analysé par l'analyseur.

Mais le texte à l'intérieur d'une section CDATA sera ignoré par l'analyseur.

essayer cette

<title id="1">Java is a <![CDATA[<blah id="2">cool</blah> ]]>programming language</title> 
+1

Je voudrais ne pas avoir recours à l'utilisation de données de caractère afin de résoudre ce problème. – Hamed

+0

Alors que CDATA est un moyen valable d'y parvenir, j'ai toujours appris à l'éviter. Pourrait être une habitude de codage vraiment; Je ne suis pas au courant des preuves ou des arguments contre son utilisation. – Wivani

0

En général, vous utiliseriez &lt; et &gt; (et d'autres) pour construire ces balises dans vos valeurs de nœud. Ce sont des références d'entités. Voir par exemple here pour quelques informations à leur sujet; Google/Bing/YourFavouriteSearchEngine pour plus de détails.

Dans votre exemple, cela signifie que vous utiliseriez:

<title id="1">Java is a &lt;blah id="2"&gt;cool&lt;/blah&gt; programming language</title> 

Cheers, Wim

Questions connexes