根据stax specification,getElementText()
会返回文本数据,并将当前事件设为END_ELEMENT
。
我如何才能访问此END_ELEMENT
,因为XMLEventReader
没有任何方法可以访问当前事件? peek()
和next()
方法在XML中提供下一个事件。
答案 0 :(得分:1)
你最好解释事件
while (eventReader.hasNext()) {
XMLEvent event = eventReader.nextEvent();
if (event.isStartElement()) {
StartElement startElement = event.asStartElement();
// check the element
if (startElement.getName().getLocalPart() == ("MyTag")) {
// We read the attributes from this tag
@SuppressWarnings("unchecked")
Iterator<Attribute> attributes = (Iterator<Attribute>) startElement
.getAttributes();
while (attributes.hasNext()) {
Attribute attribute = attributes.next();
if (attribute.getName().toString().equals("myattribute")) {
System.out.println("Attribute Value: " + attribute.getValue());
}
}
}
if (event.isEndElement()) {
EndElement endElement = event.asEndElement();
if (endElement.getName().getLocalPart() == ("MyTag")) {
// do Something
}
}
} // end while