?? domdemo.java
字號:
package javawebservice;
import java.io.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.w3c.dom.*;
public class DOMDemo
{
//設置輸出編碼格式
static final String outputEncoding="UTF-8";
private PrintWriter out;
DOMDemo(PrintWriter out)
{
this.out=out;
}
private void print(Node node)
{
//打印節點名稱
out.println("NodeName=\""+node.getNodeName()+"\"");
//打印節點URI
String value=node.getNamespaceURI();
if(value!=null)
{
out.println("URL=\""+value+"\"");
}
//打印節點前綴
value=node.getPrefix();
if(value!=null)
{
out.println("Prefix=\""+value+"\"");
}
//打印節點本地名稱
value=node.getLocalName();
if(value!=null)
{
out.println("LocalName=\""+value+"\"");
}
//打印節點值
value=node.getNodeValue();
if(value!=null)
{
out.println("NodeValue=");
if(value.trim().equals(""))
{
out.println("[WS]");
}
else
{
out.println("\""+node.getNodeValue()+"\"");
}
}
}
private void echo(Node node)
{
int type=node.getNodeType();
switch(type)
{
//屬性節點
case Node.ATTRIBUTE_NODE:
out.println("ATTR");
print(node);
break;
//CDATA
case Node.CDATA_SECTION_NODE:
out.println("CDATA");
print(node);
break;
//注釋
case Node.COMMENT_NODE:
out.println("COMMENT");
print(node);
break;
//段落節點
case Node.DOCUMENT_FRAGMENT_NODE:
out.println("DOC_FRAGMENT");
print(node);
break;
//文檔節點
case Node.DOCUMENT_NODE:
out.println("DOC");
print(node);
break;
//文檔類型節點
case Node.DOCUMENT_TYPE_NODE:
out.println("DOC_TYPE");
print(node);
break;
//元素節點
case Node.ELEMENT_NODE:
out.println("ELEMENT");
print(node);
//得到該節點所有屬性
NamedNodeMap atts=node.getAttributes();
for(int i=0;i<atts.getLength();i++)
{
Node att=atts.item(i);
//遞歸調用
echo(att);
}
break;
//實體節點
case Node.ENTITY_NODE:
out.println("ENTITY");
print(node);
break;
//實體引用節點
case Node.ENTITY_REFERENCE_NODE:
out.println("ENTITY_REF");
print(node);
break;
//處理說明節點
case Node.NOTATION_NODE:
out.println("NOTATION");
print(node);
break;
//預處理節點
case Node.PROCESSING_INSTRUCTION_NODE:
out.println("PROC_INST");
print(node);
break;
//文本節點
case Node.TEXT_NODE:
out.println("TEXT");
print(node);
break;
//未知節點
default:
out.println("UNKNOWN NODE:"+type);
print(node);
}
//遍歷該節點子節點
for(Node child=node.getFirstChild();
child!=null;child=child.getNextSibling())
{
echo(child);
}
}
public static void main(String[] args)
{
//生成一個DocumentBuilderFactory
DocumentBuilderFactory dbf=
DocumentBuilderFactory.newInstance();
//生成一個DocumentBuilder
DocumentBuilder db=null;
try
{
db=dbf.newDocumentBuilder();
}
catch(ParserConfigurationException pce)
{
System.out.println(pce.toString());
}
String fileName=args[0];
//生成文檔
Document doc=null;
try
{
//解析文檔
doc=db.parse(new File(fileName));
}
catch(IOException ioe)
{
System.out.println(ioe.toString());
}
catch(SAXException se)
{
System.out.println(se.toString());
}
try
{
//顯示DOM樹
OutputStreamWriter outWriter=
new OutputStreamWriter(System.out,outputEncoding);
new DOMDemo(new PrintWriter(outWriter,true)).echo(doc);
}
catch(UnsupportedEncodingException uee)
{
System.out.println(uee.toString());
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -