所有现代浏览器都有读取和操作 XML 的内建 XML 解析器。解析器把 XML 载入内存,然后把它转换为可通过 JavaScript 访问的 XML DOM 对象
解析器读入整个文档,然后构建一个驻留内存的树结构,使用 DOM 接口来操作这个树结构。
优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;
缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU)
生成Xml文档
解析器通过在内存中建立和XML结构相对应的树状结构数据,使得应用程序可以方便地获得XML文件中的数据。
调用newDocument()可得到一个Document节点
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document= builder.newDocument();
构建Document内容
Element root = this.document.createElement("employees");
this.document.appendChild(root);
Element employe = this.document.createElement("employe");
Element name = this.document.createElement("name");
name.appendChild(this.document.createTextNode("yues"));
Element age = this.document.createElement("age");
age.appendChild(this.document.createTextNode("26"));
Element sex = this.document.createElement("sex");
sex.appendChild(this.document.createTextNode("Man"));
employe.appendChild(name);
employe.appendChild(age);
employe.appendChild(sex);
root.appendChild(employe);
使用 Transformer对象将一个Document节点变换为一个XML文件
TransformerFactory transFactory=TransformerFactory. newInstance()
Transformer transformer=transFactory. newTransformer();
将被变换的Document对象封装到一个DOMSource对象中
DOMSource domSource=new DOMSource(document);
将变换得到XML文件对象封装到一个StreamResult对象中
File file=new File("newXML.xml");
FileOutputStream out=new FileOutputStream(file);
StreamResult xmlResult=new StreamResult(out);
对象transformer 调用transform方法实施变换
transformer.transform(domSource, xmlResult);
用于修改Document的常用方法
Node接口是Document的父接口,提供了许多用来修改、增加和删除节点的方法:
Node appendChild(Node newChild) 节点调用该方法可以向当前节点增加一个新的子节点,并返回这个新节点。
Node removeChild(Node oldChild) throws DOMException 节点调用该方法删除参数指定的子节点,并返回被删除的子节点。
Node replaceChild(Node newChild, Node oldChild) 将子节点列表中的子节点 oldChild 替换为 newChild,并返回 oldChild 节点。
解析Xml文档
public void paserXml(String fileName) {
// TODO Auto-generated method stub
try {
this.document = builder.parse(new FileInputStream(new File(fileName)));
NodeList employees = document.getChildNodes();
for(int i=0;i<employees.getLength();i++){
Node employe = employees.item(i);
System.out.println("第"+(i+1)+"个Employee");
NodeList employeAttrs = employe.getChildNodes();
for(int j=0;j<employeAttrs.getLength();j++){
Node employeAttr = employeAttrs.item(j);
NodeList attrInfo = employeAttr.getChildNodes();
for(int k=0;k<attrInfo.getLength();k++){
Node info = attrInfo.item(k);
if(info.getNodeType()==Node.ELEMENT_NODE){
System.out.println(info.getNodeName()+":"+info.getTextContent());
}
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
分享到:
相关推荐
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写
dom4j解析xml文件的压缩包,完整版。对jdom进行了封装。包含源码,jar包以及所需的全部内容。
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
利用Dom4j生成XML和解析XML
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
通过dom4j解析xml,修改xml,自动生成xml文件。使用dom4j模拟解析web.xml配置文件,同时考虑到一个url-pattern和多个url-pattern的情况。
Java DOM 生成XML,对基本的DOM又封装了一层,使操作XML更简单
4种最主流、最全面、最详细的生成和解析xml的4种方式,包括Dom,Dom4j,Sax,JDom,读懂了绝对好用xml,非常好的入门项目,而且精心排版,逻辑清晰
Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档
一个用dom4解析和生成XML的java
Java解析XML的四种方法 1. DOM生成和解析XML文档 2. SAX生成和解析XML文档 3. DOM4J生成和解析XML文档 4. JDOM生成和解析XML
在Python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文件,下一篇文章再继续介绍Dom解析XML文件。 在生成XML文件中,我们主要使用下面的方法来完成。 主要方法 1、...
dom4j解析及生成 xml代码收集dom4j解析及生成 xml代码收集
NULL 博文链接:https://aa84990.iteye.com/blog/1881734
编写DOM解析器解析ipo.xml文件,查询有多少不同“comp_name”属性,按不同属性生成多个xml文件。 编写SAX解析器解析ipo.xml文件,输出所有有属性的元素
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API...这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。
功能说明:对附件的xml文件进行解析,获取到指定字段。并且可以更新字段、添加和删除字段。 详细介绍请看http://sonicning.blogbus.com/logs/36726735.html
详细的介绍了dom4j如何解析xml,如何把数据库中的数据存到xml文件
XMLTest.java中创建XML和解析XML示例,另附dom4j资源包