jaxp解析器 使用DOM对象来解析XML
来源:互联网 发布:mac日历广告如何禁止 编辑:程序博客网 时间:2024/05/29 14:18
XML 的解析方式有两种 DOM 和sax
DOM 会产生内存溢出问题 删除添加 遍历方便
sax 边读边解析 不会产生内存溢出 不能删除添加
解析器有 jaxp dom4j
package jaxp.demo;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
/**
* 实现jaxp 操作XML
* @author wyd
*/
public class JaxpDemo {
public static void main(String[] args) throws Exception{
/*
* 1、创建解析器工厂
* 2、根据解析器工厂来创建解析器
* 3、通过解析器创建Document 对象来对XML文件进行DOM解析
*/
/*获取节点
DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();
DocumentBuilder db= dbf.newDocumentBuilder();
Document doc=db.parse("src/jaxp/demo/01.xml");
NodeList list=doc.getElementsByTagName("name");
for(int i=0;i<list.getLength();i++)
{
Node d=list.item(i);
String s=d.getFirstChild().getNodeValue();
String s=d.getTextContent();
System.out.println(s);
}*/
/* DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();
DocumentBuilder db= dbf.newDocumentBuilder();
Document doc=db.parse("src/jaxp/demo/01.xml");
NodeList list=doc.getElementsByTagName("name");
list.item(0).getTextContent();*/
//添加节点
/*DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();
DocumentBuilder db= dbf.newDocumentBuilder();
Document doc=db.parse("src/jaxp/demo/01.xml");
NodeList list=doc.getElementsByTagName("p");
Node d=list.item(0);
Element ele=doc.createElement("sex");
Text t=doc.createTextNode("21");
ele.appendChild(t);
d.appendChild(ele);
//回写XML
TransformerFactory tf=TransformerFactory.newInstance();
Transformer tfor=tf.newTransformer();
tfor.transform(new DOMSource(doc), new StreamResult("src/jaxp/demo/01.xml"));*/
//修改节点
/*DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document d=db.parse("src/jaxp/demo/01.xml");
d.getElementsByTagName("sex").item(0).setTextContent("nan");
TransformerFactory tf=TransformerFactory.newInstance();
Transformer tfor=tf.newTransformer();
tfor.transform(new DOMSource(d), new StreamResult("src/jaxp/demo/01.xml"));*/
//删除节点
/*DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document d=db.parse("src/jaxp/demo/01.xml");
Node dc=d.getElementsByTagName("sex").item(0);
Node p=dc.getParentNode();
p.removeChild(dc);
TransformerFactory tf=TransformerFactory.newInstance();
Transformer tfor=tf.newTransformer();
tfor.transform(new DOMSource(d), new StreamResult("src/jaxp/demo/01.xml"));*/
//遍历节点
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document d=db.parse("src/jaxp/demo/01.xml");
//XML不同于HTML 空格换行也会被解析 使用递归
list(d);
}
private static void list(Node d) {
if(d.getNodeType()==Node.ELEMENT_NODE)
{
System.out.println(d.getNodeName());
}
NodeList list=d.getChildNodes();
for(int i=0;i<list.getLength();i++)
{
Node d1=list.item(i);
list(d1);
}
}
}
0 0
- jaxp解析器 使用DOM对象来解析XML
- 使用JAXP Dom解析xml
- 【XML解析】使用Jaxp对XML进行DOM解析
- xml解析-jaxp-dom方式
- XML - JAXP技术 - DOM解析
- jaxp利用DOM解析XML
- 【XML】DOM—JAXP 解析
- 使用JAXP解析XML
- xml解析 DOM(JAXP Crimson解析器)
- xml解析-jaxp之dom解析
- 使用JAXP进行DOM解析
- 使用jaxp进行dom解析
- 使用JAXP进行DOM解析
- 使用JAXP进行DOM解析
- 使用JAXP进行DOM解析
- 使用JAXP对xml文档进行Dom解析
- 使用JAXP对xml文档进行Dom解析
- 使用JAXP的DOM方式解析XML文档(能力工场)
- BZOJ 1133 [POI2009]Kon DP
- A + B Problem II
- 白盒测试.
- Scrum
- 安卓的生命周期(初学)
- jaxp解析器 使用DOM对象来解析XML
- 第104讲:通过案例解析Akka中的Actor的不同类型的Constructor学习笔记
- Android关于JSON解析
- 接口与抽象类的区别
- Openstack网络之Vlan网络模式
- java.lang.RuntimeException: Parcel: unable to marshal value com.zhym.friendcircule.Photo@41fcd5c8
- 菜鸟的安卓实习之路----软键盘弹出布局不适不完全指南
- csdn能不能行啊,传个资源我都登陆过了,还是重复让登陆
- 2015.9.17 initWithName构造函数补充