2012-09-22 1 views
2

Je dois écrire des objets org.wc3.dom.Element dans un fichier javax.xml.stream.XMLStreamWriter.Quelle est la meilleure façon d'écrire un objet Java org.wc3.dom.Element dans un fichier javax.xml.stream.XMLStreamWriter?

J'ai trouvé exactement ce que j'ai besoin dans la classe StaxUtils du cxf-common-utilities jar, qui a des méthodes telles que

writeDocument(org.w3c.dom.Document d, javax.xml.stream.XMLStreamWriter writer, boolean writeProlog, boolean repairing) 
writeNode(org.w3c.dom.Node n, javax.xml.stream.XMLStreamWriter writer, boolean repairing) 
writeElement(org.w3c.dom.Element e, javax.xml.stream.XMLStreamWriter writer, boolean repairing, boolean endElement) 
etc.. 

Cependant, ceci est un pot assez spécifique, ayant des dépendances sur le pot Stax-api etc .. et Je préfère ne pas l'utiliser.

Je pourrais écrire moi-même un utilitaire basé sur l'implémentation StaxUtils, en parcourant l'élément et en faisant des appels writeStartElement (String), writeCharacters (String) et writeEndElement, mais je préfère utiliser une classe utilitaire existante.

Est-ce que quelqu'un connaît un jar util xml plus basique qui contient des méthodes similaires, en plus du jar cxf-common-utilities? Ou existe-t-il une façon plus simple de le faire dans les classes JDK standard que je ne vois pas?

+1

Avez-vous regardé dans la classe [XMLSerializer] (http://xerces.apache.org/xerces-j/apiDocs/org/apache/xml/serialize/XMLSerializer.html)? Cette classe est disponible en xerces. – randominstanceOfLivingThing

+0

Je ne peux pas utiliser cette classe pour ce cas d'utilisation. Mon exigence est d'écrire des objets org.wc3.dom.Element que je reçois en entrée d'un fichier javax.xml.stream.XMLStreamWriter. Je ne peux pas changer de type. –

+0

Ajoutez simplement votre élément à un document sans la déclaration XML. – randominstanceOfLivingThing

Répondre

2

Vous pouvez le faire avec un identity Transformer à partir d'un DOMSource vers un StAXResult. La source peut être construite à partir d'un Element, il ne doit pas être un Document complet.

Questions connexes