domprinter.java
来自「孙鑫JAVA从入门到精通配套练习程序。所有程序都实际运行过」· Java 代码 · 共 74 行
JAVA
74 行
//演示遍历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 + =
减小字号Ctrl + -
显示快捷键?