staxreader.java
来自「xstream是一个把java object序列化成xml文件的开源库,轻便好用」· Java 代码 · 共 87 行
JAVA
87 行
package com.thoughtworks.xstream.io.xml;import com.thoughtworks.xstream.converters.ErrorWriter;import com.thoughtworks.xstream.io.StreamException;import javax.xml.namespace.QName;import javax.xml.stream.XMLStreamConstants;import javax.xml.stream.XMLStreamException;import javax.xml.stream.XMLStreamReader;/** * A reader using the StAX API. * * @author James Strachan * @version $Revision: 578 $ */public class StaxReader extends AbstractPullReader { private final QNameMap qnameMap; private final XMLStreamReader in; public StaxReader(QNameMap qnameMap, XMLStreamReader in) { this.qnameMap = qnameMap; this.in = in; moveDown(); } protected int pullNextEvent() { try { switch(in.next()) { case XMLStreamConstants.START_DOCUMENT: case XMLStreamConstants.START_ELEMENT: return START_NODE; case XMLStreamConstants.END_DOCUMENT: case XMLStreamConstants.END_ELEMENT: return END_NODE; case XMLStreamConstants.CHARACTERS: return TEXT; case XMLStreamConstants.COMMENT: return COMMENT; default: return OTHER; } } catch (XMLStreamException e) { throw new StreamException(e); } } protected String pullElementName() { // let the QNameMap handle any mapping of QNames to Java class names QName qname = in.getName(); return qnameMap.getJavaClassName(qname); } protected String pullText() { return in.getText(); } public String getAttribute(String name) { return in.getAttributeValue(null, name); } public String getAttribute(int index) { return in.getAttributeValue(index); } public int getAttributeCount() { return in.getAttributeCount(); } public String getAttributeName(int index) { return in.getAttributeLocalName(index); } public void appendErrors(ErrorWriter errorWriter) { errorWriter.add("line number", String.valueOf(in.getLocation().getLineNumber())); } public void close() { try { in.close(); } catch (XMLStreamException e) { throw new StreamException(e); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?