DOM Document Object Model 文档对象模型
SAX Simple API for XML 来自开源社区
1.DOM 解析原理:讲文档加载到内存中形成树形结构
|
所有标签:封装成一个对象Element |
|
所有的文本:封装成一个对象Text |
|
所有的属性:封装成一个对象Attribute |
|
整个文档:封装成一个对象Document |
|
所有的元素属性文本标签统称为节点Node 文档对象也是一个Node |
2.SAX事件驱动的模式 一边读一边解析
3.解析的方式 CRUD
JAXP |
Sun公司官方针对这两种解析方式提供的API |
Javax.xml.parsers |
DOM4J |
开源组织针对这两种技术提供的API
|
|
JDOM |
开源组织提供的解析方式 |
|
4.JAXP(Java API for XML Processing)
Org.w3c.dom:提供DOM方式解析XML标准接口
Org.w3c.sax:提供sax方式解析XML的标准接口
Javax.xml:提供了解析xml文档的类
Javax.xml.parsers包中,定义了工厂类,通过调用工厂类得到针对xml文档进行解析的DOM和SAX解析器对象
DocumentBuilderFactory SAXParserFactory
5.DOM 解析
Javax.xml.parsers包中DocumentBuilderFactory类中的newInstance()方法得到工厂对象
DOM |
DocumentBuildetFactory factory=DocumentBuilderFactory.newInstance(); |
调用对象newDocumentBuilderFactory得到DOM解析器对象
DOM |
DocumentBuilder builder=factory.newDocumentBuilder() |
|
|
调用DOM解析器对象的parse()方法解析xml得到Document对象后操作整个xml文档
DOM |
Document document=builder.parse("xml文档文件路径") |
获得相应的节点 NodeList nodlist=document.getElementByTagName("标签元素")
创建新的节点 createElement("标签名") 设置文本内容:setTextContent("内容")
接口NodeList中的方法 item(int index) getTextContent()获取节点的内容 appendChild()
6.DOM中节点之间的关系
位于同一个节点之上的节点是该节点的父节点(Parent),反之,位于节点之下的节点称之为子节点(Child)
同一层次,具有相同节点的节点是兄弟节点(Sibling)
一个节点的下一层的节点集合时节点的后代(descendant)
父祖父节点及所有位于节点上面的都是节点的祖先(ancestor)
7.回写更新xml文档
A:Javax.xml.transform包中的Transformer类用于把代表xml文件的Document对象转换为某种格式后进行输出
|
TransformerFactory tFactory=TransformerFactory.newInstance(); |
|
Transformer transformer=tFactory.newTransformer(); |
B: Transformer类通过transformer方法完成操作,该方法接收一个源和目的
|
Javax.xml.transform.dom.DOMSource类来关联要转化的document对象 |
|
Javax.xml.transform.stream.streamResult对象来表示数据目的地 |
|
Transformer.transform(new DOMSource(document),new StreamResult("xml文件目的地")) |
8.Jaxp SAX 解析方式 基于事件驱动的方式
startElement()回调在每次SAX解析器遇到元素的起始标记是被调用
Characters()回调为字符数据所调用
endElement()为元素的结束标记所回调,并提供所有回调方法默认的空实现
A:通过SAXParserFactory创建SAX解析工厂 SAXParserFactory factory=SAXParserFactory.newInstance();
B:通过SAX解析器工厂的解析器对象 SAXParser parser=factory.newSAXParser();
C:通过解析器对象解析xml文档 parser.parse("xml文件名",new MyHandler())
这里MyHandler类继承DefaultHandler并重写了startElement,characters和endElement这三个方法
9.DOM4J解析方式 需要导入jar包
a |
创建解析器 SAXReader reader=new SAXReader();
解析xml文档 Document document=reader.read("xml文档文件路径");
|
b |
解析xml形式文本,得到document对象 String text="<members></members>"; Document document=DocumentHelper.parseText(text); |
c |
主动创建document对象 Document document=DocumentHelper.createDocument(); 创建根节点 Element roo=document.addElement("members"); |
获得文档的根节点 Element root=document.getRootElement();
获取摸个节点的子节点 Element element=node.element("标签名");
取得节点的文字 String text=node.getText();
取得某节点下所有名为“member”的子节点,并遍历
List nodes=root.elements("member"); 设置节点文字 element.setText("内容");
删除某节点 父节点.remove(子节点);
root.element(标签名).element(子标签名).getText(); 获取
root.element(标签名).addElement().setText(); 添加
DOM4J的更新回写
OutpuformatFormat=Outputformat.createPrettyPrint();
Format.setEncoding("UTF-8");
XMLWriter writer=new XMLWriter(new FileWriter("xml文件路径"),format);
Writer.write(document);
Writer.close();
相关推荐
易语言 xml解析 易语言 xml解析 易语言 xml解析 易语言 xml解析 易语言 xml解析 易语言 xml解析 易语言 xml解析 教程 带源码
解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。 TinyXML是一个开源的解析XML的解析库,能够用于C++,...
C# XML解析方式
XML解析、XML生成工具,灵活好用的XML解析器、封装接口简单易用
XML解析技术研究XML解析技术研究XML解析技术研究XML解析技术研究XML解析技术研究
使用dom4j解析XML,用于解析复杂XML,多层镶嵌XML,多层循环xml解析,解析完保存到实体类
LabVIEW XML解析器示例, 包含xml加载,保存,解析等功能
minixml是适合嵌入式系统的xml解析器,支持dom
ios开发,简单的xml解析,亲测可用,自己认真研究研究,不要遇到点问题就放弃。
利用jdom解析复杂xml到bean中: 1.依赖的jar:jdom-1.1.jar,commons-beanutils.1.8.3.jar,commons-logging-1.1.1.jar ...用模板将xml解析 具体可以打断点运行主类:/xml_parse/src/com/vhl/main/StartMain.java,观察
Mini-XML 是一个小型 XML 解析库,您可以使用它来读取应用程序中的 XML 数据文件或字符串,而无需大型非标准库 读取 UTF-8 和 UTF-16 并写入 UTF-8 编码的 XML 文件和字符串。 数据存储在链表树结构中,保留 XML ...
java心电图xml解析源码。
XML 解析XML 解析XML 解析XML 解析XML 解析XML 解析XML 解析
java实现xml解析word文档代码实现,通过解析word书签实现java动态写入word文档。方便使用。
XML解析 很全 一看就懂的东东。。。。。。。。。
rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET ...
XML解析支持库
C++ XML解析之TinyXML篇
tinyxml解析XML文件