我有我解析它有这样的元素的XML文档...如何使用XMLEventReader的打印XML文档的文本值时,一些元素没有文本
<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这样的元素具有文本值,但tax元素具有子元素(没有自己的文本值)。
我解析这个与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中没有看到任何内容来检查元素是否为文本。
是一个需求,或者你会比使用stax更简单的解决方案感兴趣吗? –