📄 traversedoc.java
字号:
package xmlp;import org.w3c.dom.Document;import org.w3c.dom.Node;import static java.lang.System.*;import org.w3c.dom.NodeList;import org.w3c.dom.Element;import org.w3c.dom.NamedNodeMap;import org.w3c.dom.Attr;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import java.io.IOException;import javax.xml.parsers.*;import org.xml.sax.SAXException;public class TraverseDoc { Document doc; public TraverseDoc(Document doc) { this.doc=doc; } public void traverse(){ output(doc,""); } public void output(Node n,String indent){ short type=n.getNodeType(); switch(type){ case Node.DOCUMENT_NODE: out.print("<?xml version='1.0'?>"); Document doc=(Document)n; NodeList nl=doc.getChildNodes(); if(nl !=null){ int len=nl.getLength(); for(int i=0;i<len;i++){ output(nl.item(i),""); } }break; case Node.ELEMENT_NODE: Element e=(Element)n; out.print("<"+e.getNodeName()); NamedNodeMap attrs=e.getAttributes(); if(attrs !=null){ int len=attrs.getLength(); for(int i=0;i<len;i++){ output(attrs.item(i),""); } } out.print(">"); NodeList enl=e.getChildNodes(); if(enl !=null){ int len=enl.getLength(); indent +=" "; for(int i=0;i<len;i++){ output(enl.item(i),indent); } } out.print("</"+ e.getNodeName()+">"); break; case Node.ATTRIBUTE_NODE: Attr atr=(Attr)n; out.print(" "+ atr.getName()+"='" +atr.getNodeValue()+"'"); break; case Node.TEXT_NODE: out.print(n.getNodeValue()); } } public static void main(String... args){ try{ DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); dbf.setValidating(true); dbf.setNamespaceAware(true); DocumentBuilder db = null; db = dbf.newDocumentBuilder(); Document doc=db.parse(args[0]); TraverseDoc td=new TraverseDoc(doc); td.traverse(); }catch(IOException e){ e.printStackTrace(); } catch (ParserConfigurationException ex) { ex.printStackTrace(); } catch (SAXException ex) { ex.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -