La manipulation de XML des caractères d'échappement (par exemple les guillemets) à l'aide de JAXB Marshaller
J'ai besoin de sérialiser un objet java, XML pour un fichier XML à l'aide de la JAXB Marshaller (JAXB version 2.2). Maintenant dans l'objet xml, j'ai une balise qui contient Chaîne de valeur tels que:
"<"tagA>
**"<"YYYYY>done"<"/YYYYY>**
"<"/tagA>
Maintenant, comme vous pouvez voir que la valeur de cette chaîne contient des balises.
Je veux que ce soit écrit de la même manière dans le fichier xml.
Mais JAXB Marshaller convertit ces valeurs telles que: l'
"&"lt;YYYYY"&"gt;"&"#xD;done
...& donc sur
Je ne suis pas en mesure de traiter ces caractères d'échappement séparément à l'aide de JAXB 2.2
Est-il possible de toute façon?
Toute aide dans ce domaine seront les grands..
Merci d'avance,
Abhinav Mishra
OriginalL'auteur javdev | 2010-12-14
Vous devez vous connecter pour publier un commentaire.
Fait en définissant la propriété suivante de la JAXB Marshaller:
Pour élaborer le même, j'avais à peine mis la propriété suivante à la marshaller: marshaller.setProperty("jaxb.l'encodage", "Unicode"); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.setProperty(CharacterEscapeHandler.classe.getName(), new CustomCharacterEscapeHandler());
Ici, dans le troisième énoncé, comme vous pouvez le voir, j'avais créé un CustomCharacterEscapeHandler classe qui est en train de faire le caractère d'échappement de la manipulation. Vous pouvez trouver son code facilement sur le net en cherchant "comment remplacer la méthode d'échappement de CharacterEscapeHandler'. Dans le cas où vous avez besoin du code, puis me demander..
Ok.. il a obtenu. je l'ai fait et cela a fonctionné. Merci beaucoup
OriginalL'auteur javdev
Il y a un moyen plus simple. La première utilisation personnalisée séquence d'échappement:
Puis maréchal à une Chaîne comme mentionné ci-dessous
et puis créer un objet de document à partir de l'écrivain mentionnés ci-dessous
caractères d'échappement problème sera résolu
Vous pouvez utiliser com.soleil.xml.bind.marshaller.CharacterEscapeHandler
com.soleil.xml.bind.marshaller.CharacterEscapeHandler n'est pas sur le chemin de la classe. Au moins, pas pour moi. Ce que la bibliothèque est-il?
OriginalL'auteur preetham
Vous pouvez tirer parti de la CDATA structure. Standard JAXB ne couvre pas cette structure. Il y a une extension dans EclipseLink JAXB (MOXy) pour cela (je suis le tech lead). Découvrez ma réponse à une question connexe:
Il décrit l' @XmlCDATA annotation dans MOXy:
Pour plus d'informations, voir:
OriginalL'auteur Blaise Doughan
Selon ce que vous êtes exactement à la recherche de, vous pouvez soit :
OriginalL'auteur fred
Avec JAXB marshaller si vous voulez le plein contrôle sur les caractères à échapper(par exemple,"\'"), vous devez ajouter la propriété :
et de créer un nouveau CustomCharacterEscapeHandler classe
Espère que ça aide.
OriginalL'auteur Patrik Bego