`
ms_X0828
  • 浏览: 4116 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

DOM解析.3

XML 
阅读更多
//实现增、删、改
import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
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;
import org.xml.sax.SAXException;


public class DOMconver {


public static void main(String[] args) {
// TODO 自动生成方法存根
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse(new File("student.xml"));
//添加元素
Element eltstudent=doc.createElement("student");
Element eltname=doc.createElement("name");
Element eltage=doc.createElement("age");

Text textname=doc.createTextNode("王五");
Text textage=doc.createTextNode("23");

eltname.appendChild(textname);
eltage.appendChild(textage);

eltstudent.appendChild(eltname);
eltstudent.appendChild(eltage);

eltstudent.setAttribute("ar", "03");

Element root=doc.getDocumentElement();
root.appendChild(eltstudent);
//删除元素
NodeList nl=doc.getElementsByTagName("student");
root.removeChild(nl.item(0));
//修改元素
Element eltstuchg=(Element)nl.item(0);
Node nodestuchg=eltstuchg.getElementsByTagName("age").item(0);
nodestuchg.getFirstChild().setNodeValue("22");

for(int i=0;i<nl.getLength();i++)
{
Element elt=(Element)nl.item(i);
System.out.println("编号: "+elt.getAttribute("ar"));
Node nodename=(Node)elt.getElementsByTagName("name").item(0);
Node nodeage=(Node)elt.getElementsByTagName("age").item(0);
System.out.println("姓名: "+nodename.getFirstChild().getNodeValue());
System.out.println("年龄:  "+nodeage.getFirstChild().getNodeValue());
System.out.println("----------------");
}

TransformerFactory tff=TransformerFactory.newInstance();
Transformer tf=tff.newTransformer();
tf.setOutputProperty("encoding", "gb2312");
DOMSource domsource=new DOMSource(doc);
StreamResult result=new StreamResult(new File("show.xml"));
tf.transform(domsource, result);

} catch (ParserConfigurationException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (SAXException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (TransformerConfigurationException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (TransformerException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}

}

}
//对应的 XML

<?xml version="1.0" encoding="Gb2312"?>
<students>
<student ar="01">
<name>张三</name>
<age>18</age>
</student>
<student ar="02">
<name>李四</name>
<age>19</age>
</student>
</students>
分享到:
评论

相关推荐

    Java解析XML文档—使用DOM解析.doc

    本文主要聚焦于DOM解析方式。DOM是一种基于树形结构的API,它允许开发人员将整个XML文档加载到内存中,形成一个完整的对象树,然后通过遍历这棵树来访问和修改XML文档的各个部分。 DOM解析的优势在于它可以提供对...

    xml解析dom4.zip

    DOM4J是Java中一个流行的XML处理库,它提供了灵活且高效的API来解析、创建、修改XML文档。DOM4J基于DOM模型,但相比标准的DOM API,它更易于使用且性能更好。 DOM(Document Object Model)是一种树形结构,它将XML...

    解析XML所需的jar dom.jar

    DOM解析器是XML解析方法之一,它将整个XML文档加载到内存中,形成一个完整的节点树。通过这个树,开发人员可以方便地遍历、查询、修改或操作XML文档的结构。例如,你可以使用DOM API来查找特定元素、获取属性值、...

    w3c-dom.jar 包

    w3c-dom.jar 包 dom解析xml使用 包 免积分下载

    XML解析实践之DOM解析和SAX解析.rar

    3. 性能优化:对于大型XML文件,若使用DOM解析,可以考虑分块读取或使用SAX解析。对于SAX解析,可以通过预定义事件处理器来减少回调函数的数量,提高效率。 4. 安全性:避免XML注入攻击,确保输入的XML数据经过验证...

    DOMscripting DOMscripting.rar DOMscripting.rar

    2. **DOM API**:详细解析DOM提供的各种方法和属性,如`getElementById`、`getElementsByTagName`等。 3. **JavaScript与DOM交互**:讲解如何使用JavaScript来操作DOM,如选择元素、添加事件监听器等。 4. **实战...

    dom解析和sax解析

    DOM解析是一种基于树型结构的XML解析方法。当一个XML文档被DOM解析器加载时,整个文档会被转化为一棵内存中的对象树,称为DOM树。每个XML元素、属性、文本节点等都被映射为树中的一个对象。例如,给定的XML示例: `...

    dom.sax.pull解析

    Ø 1、DOM(org.w3c.dom) Ø “文档对象模型”方式,解析完的Xml将生成一个树状结构的对象。 Ø 2、SAX(org.xml.sax) Ø SimpleAPI for XML,以事件的形式通知程序,对Xml进行解析。 Ø 3、XMLPULL(org.xmlpull.v1) ...

    dom4.jar包,高效xml解析

    它采用的是SAX和DOM的混合模型,既支持事件驱动的解析方式,也支持基于树形结构的DOM模型。这种设计使得DOM4J在处理大型XML文档时,既能避免一次性加载整个文档到内存中的问题(如DOM模型),又能方便地进行遍历和...

    android Dom解析xml文件

    DOM解析器将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML内容。本篇文章将深入探讨Android中的DOM解析XML文件,包括其基本原理、实现步骤和一些实用技巧。 ### 1. DOM解析的...

    ios-XML的DOM解析方式.zip

    DOM解析是处理XML文档的一种常见方法,它将整个XML文件加载到内存中,形成一个树形结构,允许开发者通过节点遍历和操作XML内容。在iOS中,我们可以使用Apple提供的`NSXMLParser`类来实现DOM解析。 首先,我们需要...

    java dom 解析 xml 实例

    Java DOM 解析 XML 实例 Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过...

    jdom.jar,dom4j.jar,dom.jar,sax.jar,jaxen.jar解析xmljar包

    `jaxen-1.1.1.jar` 是JAXEN(Java XPath Engine)的实现,它为各种XML解析模型(包括DOM、DOM4J、XOM等)提供了统一的XPath查询接口。XPath是一种强大的语言,用于在XML文档中查找和选取节点,JAXEN使得在不同解析器...

    Android Dom解析XML

    DOM解析方式允许开发者一次性加载整个XML文档到内存中,形成一个树形结构,便于遍历和操作。尽管对于大型XML文件,DOM解析可能因消耗大量内存而效率低下,但在处理小型XML文件时,DOM方法具有简洁和方便的优点。 ...

    jsdom.rar jsdom.chm

    3. **静态网站生成**:在构建静态网站时,可以先用jsdom处理动态内容,然后生成纯HTML输出。 4. **转换工具**:将HTML转换为其他格式,如Markdown或JSON。 **使用示例** 使用jsdom,你可以像这样读取和操作HTML...

    java_dom解析xml xml java

    标题“java_dom解析xml xml java”表明了本文档的主题是关于如何使用Java中的DOM技术来解析XML文件。 #### 描述分析 描述中提到这是一个适合新手入门的内容,并给出了一个简单的XML示例。该XML文档包含了一个`...

    java平台中使用DOM解析xml文件

    在Java平台上,DOM解析器提供了对XML文档的全面和结构化的访问。 使用DOM解析XML的基本步骤如下: 1. **导入必要的库**:在Java中,DOM解析功能主要由`javax.xml.parsers`和`org.w3c.dom`包提供。因此,首先需要在...

    DOM解析xml文件实例讲解

    本篇文章将深入探讨DOM解析XML文件在Android中的应用实例。 首先,DOM解析的基本思想是将整个XML文件加载到内存中,形成一个树形结构,即DOM树。这样做的优点是解析后的数据可以方便地进行任意位置的查找和修改,但...

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...

Global site tag (gtag.js) - Google Analytics