Frage

Ich habe einige Schwierigkeiten ein XML zu analysieren Stax verwenden, um org.w3c.dom.Document Objekte für Teile der XML-Struktur zu erstellen.

Bsp .:


Kind 1
Kind 2
Kind 3


=> Ich möchte 3 DOM-Objekte erstellen für jedes Knoten.

Ich habe versucht, dies mit Staxmate und DomConverter zu tun, aber ich habe ein Problem ...

Mein Testprojekt hängt nur von:

  • stax2-api-3.0.3.jar
  • staxmate-2.0.0.jar
  • jdk 1.6.0_21

2 Tests:

  • Test 1, die perfekt
  • funktioniert


    FileInputStream in = new FileInputStream("demo.xml");
    XMLStreamReader sr = XMLInputFactory.newInstance().createXMLStreamReader(in);
    Document doc = new DOMConverter().buildDocument(sr);
    in.close();

  • Test 2, die eine HIERARCHY_REQUEST_ERR Ausnahme auslöst:


    FileInputStream in = new FileInputStream("demo.xml");
    XMLStreamReader sr = XMLInputFactory.newInstance().createXMLStreamReader(in);
    while (sr.hasNext()) {
sr.next(); switch (sr.getEventType()) { case XMLStreamReader.START_ELEMENT: Document doc = new DOMConverter().buildDocument(sr); } } in.close();


    org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
          at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.insertBefore(CoreDocumentImpl.java:391)
          at com.sun.org.apache.xerces.internal.dom.NodeImpl.appendChild(NodeImpl.java:235)
          at org.codehaus.staxmate.dom.DOMConverter._build(DOMConverter.java:292)
          at org.codehaus.staxmate.dom.DOMConverter.buildDocument(DOMConverter.java:171)
          at org.codehaus.staxmate.dom.DOMConverter.buildDocument(DOMConverter.java:152)
          at org.codehaus.staxmate.dom.DOMConverter.buildDocument(DOMConverter.java:131)
          at com.staxmatetest.Main.main(Main.java:22)

Könnten Sie mir bitte helfen?

Mit freundlichen Grüßen, Guillaume Lefebvre

War es hilfreich?

Lösung

New Staxmate Release 2.0.1 (erhältlich unter http://wiki.fasterxml.com/StaxMateDownload ) löste dieses Problem.

Danke StaxMan!

Andere Tipps

Schauen Sie sich diese: http://jira.codehaus.org/browse/STAXMATE-39 ...: -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top