У меня есть XML-документ, что я синтаксический анализ, который имеет такие элементы, как это ...Как печатать текстовые значения в XML-документ с XMLEventReader, когда некоторые элементы не имеют текста
<item>
<g:product_type>Accessories</g:product_type>
<g:item_group_id>85953</g:item_group_id>
<g:tax>
<g:country>US</g:country>
<g:rate>0.00</g:rate>
</g:tax>
</item>
Обратите внимание, как некоторые такие элементы, как product_type и item_group, имеют текстовые значения, но элемент налога имеет вспомогательные элементы (не имеет собственного текстового значения).
Я разборе это с XMLEventReader, и если элемент имеет текст, то я хочу, чтобы напечатать ....
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
InputStream in = read();
XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
while (reader.hasNext()){
XMLEvent event = reader.nextEvent()
if (event.isStartElement()){
System.out.println("The value is" + reader.elementText);
}
}
Но прямо сейчас, потому что у меня есть, что один элемент, который не имеет текста, он дает ошибку, как это ..
elementGetText() function expects text only elment but START_ELEMENT was encountered.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.getElementText(XMLStreamReaderImpl.java:851)
at com.sun.xml.internal.stream.XMLEventReaderImpl.getElementText(XMLEventReaderImpl.java:188)
Как я могу изменить код выше, так XMLEventReader игнорирует такие элементы, которые не имеют текста? Я не видел ничего в java docs, чтобы проверить, является ли элемент текстом.
- это требование sax или вас будут интересовать некоторые более простые решения, чем использование stax? –