📄 domreader.java
字号:
package com.thoughtworks.xstream.io.xml;import org.w3c.dom.Attr;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.w3c.dom.Text;import java.util.ArrayList;import java.util.List;import com.thoughtworks.xstream.io.HierarchicalStreamReader;public class DomReader extends AbstractDocumentReader { private Element currentElement; private StringBuffer textBuffer; private List childElements; public DomReader(Element rootElement) { super(rootElement); textBuffer = new StringBuffer(); } public DomReader(Document document) { this(document.getDocumentElement()); } public String getNodeName() { return currentElement.getTagName(); } public String getValue() { NodeList childNodes = currentElement.getChildNodes(); textBuffer.setLength(0); int length = childNodes.getLength(); for (int i = 0; i < length; i++) { Node childNode = childNodes.item(i); if (childNode instanceof Text) { Text text = (Text) childNode; textBuffer.append(text.getData()); } } return textBuffer.toString(); } public String getAttribute(String name) { Attr attribute = currentElement.getAttributeNode(name); return attribute == null ? null : attribute.getValue(); } public String getAttribute(int index) { return ((Attr) currentElement.getAttributes().item(index)).getValue(); } public int getAttributeCount() { return currentElement.getAttributes().getLength(); } public String getAttributeName(int index) { return ((Attr) currentElement.getAttributes().item(index)).getName(); } protected Object getParent() { return currentElement.getParentNode(); } protected Object getChild(int index) { return childElements.get(index); } protected int getChildCount() { return childElements.size(); } protected void reassignCurrentElement(Object current) { currentElement = (Element) current; NodeList childNodes = currentElement.getChildNodes(); childElements = new ArrayList(); for (int i = 0; i < childNodes.getLength(); i++) { Node node = childNodes.item(i); if (node instanceof Element) { childElements.add(node); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -