У меня есть некоторые трудности с анализом XML с помощью Stax для создания объектов org.w3c.dom.Document для частей дерева XML.
Ex .:
ребенок 1
ребенок 2
ребенок 3
=> Я хотел бы создать 3 объекта DOM для каждого узла .
Я пытался сделать это с помощью Staxmate и DomConverter, но у меня проблема ...
Мой тестовый проект зависит только от:
- stax2-апи-3.0.3.jar
- staxmate-2.0.0.jar
- JDK 1.6.0_21
2 теста:
- Тест 1, который отлично работает
<code>
FileInputStream in = new FileInputStream("demo.xml");
XMLStreamReader sr = XMLInputFactory.newInstance().createXMLStreamReader(in);
Document doc = new DOMConverter().buildDocument(sr);
in.close();
- Тест 2, который выдает исключение HIERARCHY_REQUEST_ERR:
<code>
FileInputStream in = new FileInputStream("demo.xml");
XMLStreamReader sr = XMLInputFactory.newInstance().createXMLStreamReader(in);
while (sr.hasNext()) {<br>
sr.next();
switch (sr.getEventType()) {
case XMLStreamReader.START_ELEMENT:
Document doc = new DOMConverter().buildDocument(sr);
}
}
in.close();
<code>
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)
Не могли бы вы помочь мне, пожалуйста?
С уважением,
Гийом Лефевр