XML文件如下:<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE addressbook SYSTEM "Address.dtd" [
<!ENTITY amp "&#38;" >
<!ENTITY apos "'" >
]>
<addressbook>
<contact>
<name>小陈</name>
<address>dongdaji</address>
<city>guangzhou</city>
<state>guangdong</state>
<zip>222222</zip>
<phone>
<voice>222</voice>
<fax>8888888888</fax>
</phone>
<email>[email protected]</email>
<web>http://www.sina.com</web>
<company>avcon</company>
</contact>
<contact>
<name>keri</name>
<address>tt</address>
<city>aa</city>
<state>tt</state>
<zip>222222</zip>
<phone>
<voice>222</voice>
<fax>8888888888</fax>
</phone>
<email>[email protected]</email>
<web>http://www.sina.com</web>
<company>avcon</company>
</contact></addressbook>DTD文件如下:
<!ELEMENT addressbook (contact)+>
<!ELEMENT contact (name,address+,city,state,zip,phone,email,web,company)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT state (#PCDATA)>
<!ELEMENT zip (#PCDATA)>
<!ELEMENT phone (voice,fax?)>
<!ELEMENT voice (#PCDATA)>
<!ELEMENT fax (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT web (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!DOCTYPE addressbook SYSTEM "Address.dtd" [
<!ENTITY amp "&#38;" >
<!ENTITY apos "'" >
]>
<addressbook>
<contact>
<name>小陈</name>
<address>dongdaji</address>
<city>guangzhou</city>
<state>guangdong</state>
<zip>222222</zip>
<phone>
<voice>222</voice>
<fax>8888888888</fax>
</phone>
<email>[email protected]</email>
<web>http://www.sina.com</web>
<company>avcon</company>
</contact>
<contact>
<name>keri</name>
<address>tt</address>
<city>aa</city>
<state>tt</state>
<zip>222222</zip>
<phone>
<voice>222</voice>
<fax>8888888888</fax>
</phone>
<email>[email protected]</email>
<web>http://www.sina.com</web>
<company>avcon</company>
</contact></addressbook>DTD文件如下:
<!ELEMENT addressbook (contact)+>
<!ELEMENT contact (name,address+,city,state,zip,phone,email,web,company)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT state (#PCDATA)>
<!ELEMENT zip (#PCDATA)>
<!ELEMENT phone (voice,fax?)>
<!ELEMENT voice (#PCDATA)>
<!ELEMENT fax (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT web (#PCDATA)>
<!ELEMENT company (#PCDATA)>
//其中contact 是根addressbook的子节点
Element elContact = (Element)node;
String name = elContact.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
String address = .....
其余均如此操作。
import java.io.File;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.DOMBuilder;
import org.jdom.output.XMLOutputter;
public class TestXML{
public static void main (String[] args){
String path = "";
try{
// path = tools.getUAprofPath(filename);
//filename = path + filename ;
path = "E:\\technology\\test\\a.xml";
PrintXML printXML = new PrintXML();
printXML.getRoot(path);
}catch (Exception e) {
e.printStackTrace();
}
}
}class PrintXML{
public void getRoot(String path){
try{
DOMBuilder builder = new DOMBuilder();
Document doc = builder.build(new File(path));
Element root = doc.getRootElement();
getEle(root);
}catch (JDOMException e) {
e.printStackTrace();
}
}
public void getEle(Element e){
try{
for (Iterator i=e.getChildren().iterator(); i.hasNext(); ) {
Element child = (Element)i.next();
System.out.println(child.getName()+":"+child.getText());
getEle(child);
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
你要先去下载一个jdom的编译器,网上有很多地方可以下载。这个里面没有使用DTD,你可以把xml里面的DTD文件说明去了,然后把path设置成你xml所在的位置,然后运行这个程序。
还希望有其它想法的人帮帮忙,也在这里一并谢过了!