我正在使用XMLStreamReader
来读取XML文件并查找特定元素,然后更新相应的值。
我的问题是,有没有办法可以打印每个元素,包括文档的开头,如:
<?xml version="1.0" encoding="UTF-8"?>
我每次reader.next()
?
例如:
XMLStreamReader reader = inputFactory.createXMLStreamReader(new FileInputStream(
file));
while(reader.hasNext())
reader.next().ToString() //Something like this?
...
答案 0 :(得分:2)
我对你的要求感到有点困惑。
要打印<?xml version="1.0" encoding="UTF-8"?>
,您必须处理START_DOCUMENT
事件。您可以为此状态调用以下方法:
next(), getEncoding(), getVersion(), isStandalone(), standaloneSet(), getCharacterEncodingScheme(), nextTag()
要在next()
来电时打印以前阅读过的元素的名称:
XMLStreamReader reader = inputFactory.createXMLStreamReader(new FileInputStream(
file));
String currentElement = "";
while(reader.hasNext()) {
int next = reader.next();
..
if(next == XMLStreamReader.START_ELEMENT){
currentElement = reader.getLocalName();
..
System.out.println(currentElement );
}
或者,如果您只想从XML文件中打印出所有数据,则需要相应地处理每个事件:
XMLStreamReader reader = inputFactory.createXMLStreamReader(new FileInputStream(
file));
while(reader.hasNext()) {
int next = reader.next();
..
if(next == XMLStreamReader.START_ELEMENT){
System.out.println(reader.getLocalName());
}
else if(next == XMLStreamReader.ATTRIBUTE) {
// Print out all the attributes
}
else if(next == XMLStreamReader.COMMENT) {
// Print the comment
}
..
}
有关完整的活动列表,请参阅documentation。