Java 要打印的XMLStreamReader

Java 要打印的XMLStreamReader,java,xml,Java,Xml,我正在使用XMLStreamReader读取XML文件并查找特定元素,然后更新相应的值 我的问题是,是否有一种方法可以打印每个元素,包括文档的开头,例如: <?xml version="1.0" encoding="UTF-8"?> 我有点不明白你在问什么 要打印,您必须处理开始\u文档事件。可以为此状态调用以下方法: next(), getEncoding(), getVersion(), isStandalone(), standaloneSet(), getCharacter

我正在使用
XMLStreamReader
读取XML文件并查找特定元素,然后更新相应的值

我的问题是,是否有一种方法可以打印每个元素,包括文档的开头,例如:

<?xml version="1.0" encoding="UTF-8"?>

我有点不明白你在问什么

要打印
,您必须处理
开始\u文档
事件。可以为此状态调用以下方法:

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
   }
   ..

}
有关事件的完整列表,请参考。

next()
返回一个整数:“与当前解析事件对应的整数代码”。
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
   }
   ..

}