AttrattrNode=(Attr)map.item(m);
StringattName=attrNode.getName();
StringattValue=attrNode.getValue();
System.out.print("("+attName+":
"+attValue+")");
}
NodeListnodes=elementNode.getChildNodes();
output(nodes);
}
}
}
}
4.7DocumentType节点
例子7
time.dtd
ELEMENT北京站始发列车时刻表(客车*)>
ELEMENT客车(车次,开车时间)>
ELEMENT车次(#PCDATA)>
ELEMENT开车时间(#PCDATA)>
ATTLIST客车类别CDATA#REQUIRED>
example4_7.xml
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPE北京站始发列车时刻表PUBLIC"-//ISO985//China//ForXML/Ch""time.dtd">
<北京站始发列车时刻表>
<客车类别="特快">
<车次>T259车次>
<开车时间>18:
38开车时间>
客车>
<客车类别="普快">
<车次>K1257车次>
<开车时间>23:
12开车时间>
客车>
北京站始发列车时刻表>
JAXPSeven.java
importorg.w3c.dom.*;
importjavax.xml.parsers.*;
importjava.io.*;
publicclassJAXPSeven{
publicstaticvoidmain(Stringargs[]){
try{DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
DocumentBuilderdomParser=factory.newDocumentBuilder();
Documentdocument=domParser.parse(newFile("example4_7.xml"));
DocumentTypedoctype=document.getDoctype();
StringDTDName=doctype.getName();
System.out.println("DTD名字:
"+DTDName);
StringpublicId=doctype.getPublicId();
System.out.println("public标识:
"+publicId);
StringsystemId=doctype.getSystemId();
System.out.println("system标识:
"+systemId);
StringinternalDTD=doctype.getInternalSubset();
System.out.println("内部DTD:
"+internalDTD);
}
catch(Exceptione){}
}
}
4.8处理空白
例子8
bookList.dtd
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPE图书列表SYSTEM"bookList.dtd">
<图书列表>
<书名>Java程序设计书名>
<出版社>清华大学出版社出版社>
<书名>高等数学书名>
<出版社>高等教育出版社出版社>
图书列表>
example4_8.xml
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPE图书列表SYSTEM"bookList.dtd">
<图书列表>
<书名>Java程序设计书名>
<出版社>清华大学出版社出版社>
<书名>高等数学书名>
<出版社>高等教育出版社出版社>
图书列表>
JAXPEight.java
importorg.w3c.dom.*;
importjavax.xml.parsers.*;
importjava.io.*;
publicclassJAXPEight{
publicstaticvoidmain(Stringargs[]){
GiveDatagive=newGiveData();
try{DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
factory.setIgnoringElementContentWhitespace(true);//忽略缩进