📄 domprinter.java
字号:
//演示遍历XML文档
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
class DOMPrinter
{
//打印节点的名字和值
public static void printNodeInfo(Node node)
{
System.out.println(node.getNodeName()+" : "+node.getNodeValue());
}
//递归打印节点信息
public static void printNode(Node node)
{
short nodeType = node.getNodeType();
switch(nodeType)
{
case Node.PROCESSING_INSTRUCTION_NODE:
System.out.println("------PI Start------");
printNodeInfo(node);
System.out.println("------PI End------");
break;
case Node.ELEMENT_NODE:
System.out.println("------Element Start------");
printNodeInfo(node);
System.out.println("------Element End------");
//打印元素的属性
NamedNodeMap attrs = node.getAttributes();
int attrNum = attrs.getLength();
for(int i=0;i<attrNum;i++)
{
Node attr = attrs.item(i);
System.out.println("------Attr Start------");
printNodeInfo(attr);
System.out.println("------Attr End------");
}
break;
case Node.TEXT_NODE:
System.out.println("------Text Start------");
printNodeInfo(node);
System.out.println("------Text End------");
break;
default:
break;
}
//递归调用打印元素的子节点信息
Node child = node.getFirstChild();
while(null!=child)
{
printNode(child);
child = child.getNextSibling();
}
}
public static void main(String[] args)
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new File("students.xml"));
System.out.println("calling printNode");
printNode(doc);
}
catch(Throwable ex)
{
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -