xml的dom解析(jaxp实现)
来源:互联网 发布:sam软件 编辑:程序博客网 时间:2024/05/01 11:16
xml的解析方式有两种:dom解析,sax解析。
我们来看一下dom是如何解析xml的!
DOM的全名为Document Object Model的缩写。即文档对象模型!dom就相当于一棵树一些样,树枝就是每一个节点:
我们先来看一个xml文件(在escplise下生产xml后转换为source视图操作):
<?xml version="1.0" encoding="UTF-8" standalone="no"?><xml-body><book><bookname>math</bookname><bookprice>12</bookprice></book><book><bookname>english</bookname><bookprice>33</bookprice></book></xml-body>
那么我们怎么用java来操作呢?其实要用到一个工厂类DocumentBuilderFacotry来产生一个dom解析器!
public static Document createHandle(){try {//首先我们创建工厂!产生dom解析器产生工厂!DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();//从工厂中创建dom解析器!DocumentBuilder db = dbf.newDocumentBuilder();//接受一个xml文档,并把文档转换为Document对象!return db.parse("src/book.xml");} catch (Exception e) {throw new RuntimeException(e);}}
在这之后就可以操作dom的节点以操作xml了!
public static void readXml(Document d){//这里的NodeList得到的是一个名为“book”的标签元素的列表//也就是里面的元素都是book的node。NodeList nl = d.getElementsByTagName("bookname");Node n = null;for(int i = 0 ;i < nl.getLength(); i++){//可以获得该元素的某一个noden = nl.item(i);//获得node的TextContent!System.out.println(n.getFirstChild().getNodeValue());//当然我们有一个直接的方法获得TextContent!System.out.println(n.getNodeName()+"--"+n.getTextContent());}}
或者这样
ublic static void readXml_1(Document d){//把格式的空格去掉d.normalize();NodeList nl = d.getElementsByTagName("bookname");//由于得到的是element所以就可以强转Element e = (Element) nl.item(0);System.out.println(e.getFirstChild().getNodeValue());}
我们当然也可以改变xml文件
public static void writeXml(Document d){//生成一个element对象Element e = (Element) d.createElement("bookauthor");//在element中添加内容e.setTextContent("jack");//得到要添加的节点NodeList nl = d.getElementsByTagName("book");//添加到得到的节点末端nl.item(0).appendChild(e);}
我们这样只是在内存中改变了所以我们在写入xml'文件
public static void closeXml(Document d){try {TransformerFactory tff = TransformerFactory.newInstance();Transformer tf = tff.newTransformer();//这里的DOMSource是数据源。而StreamResult是数据的目标地点tf.transform(new DOMSource(d),new StreamResult(new File("src/book.xml")));} catch (Exception e) {throw new RuntimeException(e);}}
这样就可以用Dom来操作xml了,这是jaxp的方法去处理xml!
- xml的dom解析(jaxp实现)
- XML解析(增删改查)-DOM解析(Jaxp、DOM4J实现DOM解析)、SAX解析(Jaxp实现SAX解析)
- JAXP对XML的DOM解析(增删改查)
- XML的Jaxp中DOM解析
- Jaxp的dom解析
- JAXP 的DOM 解析
- 使用JAXP Dom解析xml
- xml解析-jaxp-dom方式
- XML - JAXP技术 - DOM解析
- jaxp利用DOM解析XML
- 【XML】DOM—JAXP 解析
- JAXP对XML文档进行DOM解析实现增删改
- XML的jaxp版DOM解析 和SAX解析
- JAXP下的XML解析用法(包括dom解析和sax解析)
- xml解析 DOM(JAXP Crimson解析器)
- javaweb-day01-6(XML 解析 - Jaxp的DOM方式解析)
- XML解析器SAX,DOM,JDOM,JAXP的优缺点
- 对XML文档进行JAXP的DOM解析
- DedeCMS常用标签讲解笔记整理
- 高效率的全组合算法
- Servlet&JSP的那些事儿(七)
- POJ 1062 昂贵的聘礼
- 更改Visual Studio 2010的主题设置
- xml的dom解析(jaxp实现)
- 起泡法
- Spring Batch 2将支持工作划分和基于注解的配置
- 定制CKEditor的表情
- CMS知识点总结
- __attribute__((packed)) 学
- Eclipse插件大全
- 项目自动化之道-7.安装与部署之增强安装形象
- 个性化推荐技术的十大挑战