XML基础教程2版第第4章DOM解析器代码文档格式.docx
- 文档编号:20389945
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:19
- 大小:19.04KB
XML基础教程2版第第4章DOM解析器代码文档格式.docx
《XML基础教程2版第第4章DOM解析器代码文档格式.docx》由会员分享,可在线阅读,更多相关《XML基础教程2版第第4章DOM解析器代码文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
publicstaticvoidmain(Stringargs[]){
try{DocumentBuilderFactoryfactory=
DocumentBuilderFactory.newInstance();
DocumentBuilderdomPaser=factory.newDocumentBuilder();
Documentdocument=domPaser.parse(newFile("
example4_1.xml"
));
Elementroot=document.getDocumentElement();
StringrootName=root.getNodeName();
System.out.println("
XML文件根节点的名字:
"
+rootName);
NodeListnodelist=root.getElementsByTagName("
姓名"
);
intsize=nodelist.getLength();
for(intk=0;
k<
size;
k++){
Nodenode=nodelist.item(k);
Stringname=node.getNodeName();
Stringcontent=node.getTextContent();
System.out.print(name);
:
+content);
}
}
catch(Exceptione){
System.out.println(e);
}
4.2节点的类型
例子2
example4_2.xml
雇员列表>
雇员>
张三<
年龄>
25岁<
/年龄>
工资>
3190元/月<
/工资>
/雇员>
李四<
35岁<
4320元/月<
/雇员列表>
JAXPTwo.java
publicclassJAXPTwo{
try{DocumentBuilderFactoryfactory=
DocumentBuilderFactory.newInstance();
DocumentBuilderdomParser=factory.newDocumentBuilder();
Documentdocument=domParser.parse(newFile("
example6_2.xml"
NodeListnodeList=document.getChildNodes();
output(nodeList);
publicstaticvoidoutput(NodeListnodeList){//output是一个递归方法
intsize=nodeList.getLength();
Nodenode=nodeList.item(k);
if(node.getNodeType()==Node.TEXT_NODE){
TexttextNode=(Text)node;
Stringcontent=textNode.getWholeText();
System.out.print(content);
if(node.getNodeType()==Node.ELEMENT_NODE){
ElementelementNode=(Element)node;
Stringname=elementNode.getNodeName();
System.out.print(name+"
NodeListnodes=elementNode.getChildNodes();
output(nodes);
//递归调用
4.4Element节点
例子3
example4_3.xml
商品列表>
商品名称分类="
家电"
电视机
/商品名称>
服装"
雅格尔西装
食品"
东北大米
/商品列表>
JAXPThree.java
publicclassJAXPThree{
example6_3.xml"
Elementroot=document.getDocumentElement();
NodeListnodeList=root.getChildNodes();
Stringid=elementNode.getAttribute("
分类"
Stringcontent=elementNode.getTextContent();
System.out.print("
("
+id+"
)"
:
catch(Exceptione){}
4.5Text节点
例子4
example4_4.xml
同学录>
张大山
居住城市>
大连市<
/居住城市>
联系电话>
0411-123456<
/联系电话>
刘翠花
北京市<
010-654321<
/同学录>
JAXPFour.java
publicclassJAXPFour{
GiveDatagive=newGiveData();
example4_4.xml"
give.output(nodeList);
一共有"
+give.m+"
个Text节点"
classGiveData{
intm=0;
publicvoidoutput(NodeListnodeList){//这是一个递归方法
m++;
例子5
example4_5.xml
电视机列表>
名称>
海尔电视机
价格单位='
元/台'
5238<
/价格>
/名称>
星海电视机
3660<
长虹电视机
5285<
/电视机列表>
JAXPFive.java
publicclassJAXPFive{
example4_5.xml"
System.out.printf("
平均价格:
%5.2f%s"
give.average/give.m,give.mess);
doubleaverage=0,m=0;
Stringmess;
publicvoidoutput(NodeListnodeList){
Elementparent=(Element)textNode.getParentNode();
booleanboo=(parent.getNodeName()).equals("
价格"
if(boo==true){
content=textNode.getWholeText();
average=average+Double.parseDouble(content.trim());
单位"
if(id.length()>
0){
):
mess=id;
4.6Attr节点
例子6
Example4_6.xml
应聘者列表>
姓名学历="
研究生"
张三
毕业学校类型="
工科"
清华大学<
/毕业学校>
专业>
土木工程<
/专业>
本科"
理科"
北京大学<
计算数学<
/应聘者列表>
JAXPSix.java
publicclassJAXPSix{
example4_6.xml"
NamedNodeMapmap=elementNode.getAttributes();
for(intm=0;
m<
map.getLength();
m++){
AttrattrNode=(Attr)map.item(m);
StringattName=attrNode.getName();
StringattValue=attrNode.getValue();
+attName+"
+attValue+"
4.7DocumentType节点
例子7
time.dtd
!
ELEMENT北京站始发列车时刻表(客车*)>
ELEMENT客车(车次,开车时间)>
ELEMENT车次(#PCDATA)>
ELEMENT开车时间(#PCDATA)>
ATTLIST客车类别CDATA#REQUIRED>
example4_7.xml
DOCTYPE北京站始发列车时刻表PUBLIC"
-//ISO985//China//ForXML/Ch"
"
time.dtd"
北京站始发列车时刻表>
客车类别="
特快"
车次>
T259<
/车次>
开车时间>
18:
38<
/开车时间>
/客车>
普快"
K1257<
23:
12<
/北京站始发列车时刻表>
JAXPSeven.java
publicclassJAXPSeven{
try{DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
DocumentBuilderdomParser=factory.newDocumentBuilder();
example4_7.xml"
DocumentTypedoctype=document.getDoctype();
StringDTDName=doctype.getName();
DTD名字:
+DTDName);
StringpublicId=doctype.getPublicId();
public标识:
+publicId);
StringsystemId=doctype.getSystemId();
system标识:
+systemId);
StringinternalDTD=doctype.getInternalSubset();
内部DTD:
+internalDTD);
4.8处理空白
例子8
bookList.dtd
DOCTYPE图书列表SYSTEM"
bookList.dtd"
图书列表>
book>
书名>
Java程序设计<
/书名>
出版社>
清华大学出版社<
/出版社>
/book>
高等数学<
高等教育出版社<
/图书列表>
example4_8.xml
JAXPEight.java
publicclassJAXPEight{
factory.setIgnoringElementContentWhitespace(true);
//忽略缩进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XML 基础教程 版第第 DOM 解析 代码