实验六基于JAXP实现XML数据的解析.docx
- 文档编号:2437697
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:10
- 大小:268.85KB
实验六基于JAXP实现XML数据的解析.docx
《实验六基于JAXP实现XML数据的解析.docx》由会员分享,可在线阅读,更多相关《实验六基于JAXP实现XML数据的解析.docx(10页珍藏版)》请在冰豆网上搜索。
实验六基于JAXP实现XML数据的解析
淮海工学院计算机工程学院
实验报告书
课程名:
XML开发技术
题目:
基于JAXP实现XML数据的解析
班级:
学号:
姓名:
一.实验目的
(1)通过本次实验,进一步掌握JAXP实现XML数据解析的接口与应用。
(2)通过本次实验,掌握对XML数据进行解析的方法。
(3)通过本次实验,进一步理解DOM接口与SAX接口解析XML数据的优缺点。
二.实验要求
三、实验内容
1、实现教材中代码9-2中的代码。
2、实现教材中习题9的第2题。
(选做)
四.实验结果
packagecom.xml;
importjava.io.File;
importjava.io.IOException;
importjavax.xml.parsers.DocumentBuilder;
importjavax.xml.parsers.DocumentBuilderFactory;
importjavax.xml.parsers.ParserConfigurationException;
importorg.w3c.dom.CDATASection;
importorg.w3c.dom.Comment;
importorg.w3c.dom.Document;
importorg.w3c.dom.Element;
importorg.w3c.dom.Node;
importorg.w3c.dom.NodeList;
importorg.w3c.dom.ProcessingInstruction;
importorg.xml.sax.SAXException;
publicclassReadXMLDemo01{
publicstaticvoidmain(String[]args)throwsParserConfigurationException,SAXException,IOException{
ReadXMLDemo01demo=newReadXMLDemo01();
Documentdoc=demo.parseXML("students.xml");
if(doc!
=null)
demo.readXMLReadAndPrint(doc);
}
publicDocumentparseXML(StringxmlFileName)throwsParserConfigurationException,SAXException,IOException{
DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();
dbf.setIgnoringElementContentWhitespace(false);
Documentdoc=null;
DocumentBuilderdb=dbf.newDocumentBuilder();
doc=db.parse(newFile(xmlFileName));
returndoc;
}
publicvoidreadXMLReadAndPrint(Documentdoc){
System.out.println("
xmlversion=\"1.0\"encoding=\"UTF-8\"?
>");
NodeListallNode=doc.getChildNodes();
for(intm=0;m Nodetemp=allNode.item(m); if(temp.getNodeType()==Node.COMMENT_NODE){ Commentcom=(Comment)temp; System.out.println(" --"+com.getData()+"-->"); }elseif(temp.getNodeType()==Node.PROCESSING_INSTRUCTION_NODE){ ProcessingInstructionpi=(ProcessingInstruction)temp; System.out.println(" "+pi.getTarget()+""+pi.getData()+"? >"); }elseif(temp.getNodeType()==Node.ELEMENT_NODE){ Stringroot=temp.getNodeName(); System.out.println("<"+root+">"); NodeListnodelist=temp.getChildNodes(); if(temp! =null){ for(intn=0;n if(nodelist.item(n).getNodeType()==Node.ELEMENT_NODE){ Elemente=(Element)nodelist.item(n); System.out.println("<"+e.getNodeName()+">"); NodenodeText=e.getFirstChild(); if(nodeText.getNodeType()==Node.CDATA_SECTION_NODE){ CDATASectioncdata=(CDATASection)nodeText; System.out.println(" [CDATA["+cdata.getTextContent()+"]]>"); }else{ System.out.println(nodeText.getTextContent()); } System.out.println(""+e.getNodeName()+">"); }elseif(temp.getNodeType()==Node.DOCUMENT_POSITION_DISCONNECTED){ System.out.println(); } } System.out.println(""+root+">"); } } } } } 2.Xml文档 xmlversion="1.0"encoding="UTF-8"? > --学生王宏Java成绩单--> xsl-stylesheettype="text/xsl"href="xmlxslt.xslt"? > [CDATA[喜爱文学作品《三国演义》]]> packagecom.xml; importjava.io.File; importjava.io.IOException; importjavax.xml.parsers.DocumentBuilder; importjavax.xml.parsers.DocumentBuilderFactory; importjavax.xml.parsers.ParserConfigurationException; importorg.w3c.dom.CDATASection; importorg.w3c.dom.Comment; importorg.w3c.dom.Document; importorg.w3c.dom.Element; importorg.w3c.dom.Node; importorg.w3c.dom.NodeList; importorg.w3c.dom.ProcessingInstruction; importorg.xml.sax.SAXException; publicclassReadXMLDemo01{ publicstaticvoidmain(String[]args)throwsParserConfigurationException,SAXException,IOException{ ReadXMLDemo01demo=newReadXMLDemo01(); Documentdoc=demo.parseXML("students.xml"); if(doc! =null) demo.readXMLReadAndPrint(doc); } publicDocumentparseXML(StringxmlFileName)throwsParserConfigurationException,SAXException,IOException{ DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance(); dbf.setIgnoringElementContentWhitespace(false); Documentdoc=null; DocumentBuilderdb=dbf.newDocumentBuilder(); doc=db.parse(newFile(xmlFileName)); returndoc; } publicvoidreadXMLReadAndPrint(Documentdoc){ System.out.println(" xmlversion=\"1.0\"encoding=\"UTF-8\"? >"); NodeListallNode=doc.getChildNodes(); for(intm=0;m Nodetemp=allNode.item(m); if(temp.getNodeType()==Node.COMMENT_NODE){ Commentcom=(Comment)temp; System.out.println(" --"+com.getData()+"-->"); }elseif(temp.getNodeType()==Node.PROCESSING_INSTRUCTION_NODE){ ProcessingInstructionpi=(ProcessingInstruction)temp; System.out.println(" "+pi.getTarget()+""+pi.getData()+"? >"); }elseif(temp.getNodeType()==Node.ELEMENT_NODE){ Stringroot=temp.getNodeName(); System.out.println("<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 基于 JAXP 实现 XML 数据 解析