`
sungang_1120
  • 浏览: 322538 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

XML 使用Stax 创建xml文档及通过Transformer修改文档内容

 
阅读更多

xml文件放在src目录下

book.xml:

 

<?xml version="1.0" encoding="UTF-8"?>

 


<bookstore>
 
<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

 


<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

 

 
<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

 

</bookstore>

 

 

 

创建文档

// 基于Stax的文档创间
 @Test
 public void createXml01() {
  try {
   XMLStreamWriter writer = XMLOutputFactory.newInstance()
     .createXMLStreamWriter(System.out);
   writer.writeStartDocument("UTF-8", "1.0");
   writer.writeEndDocument();
   String ns = "http://11:dd";
   writer.writeStartElement("nssss", "person", ns);
   writer.writeStartDocument(ns, "id");
   writer.writeCData("1");
   writer.writeEndElement();
   writer.writeEndElement();
   writer.flush();
   writer.close();

  } catch (XMLStreamException e) {
   e.printStackTrace();
  } catch (FactoryConfigurationError e) {
   e.printStackTrace();
  }
 }


修改文档:

// 通过Transformer修改
 @Test
 public void updateXml() {
  InputStream stream = null;
  stream = TestStax.class.getClassLoader()
    .getResourceAsStream("book.xml");
  // 创建文档处理对象
  DocumentBuilder builder = null;
  try {
   builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
   // 通过DocumentBuilder创建文档对象
   Document document = builder.parse(stream);
   // 创建XPath
   XPath xPath = XPathFactory.newInstance().newXPath();
   Transformer transform = TransformerFactory.newInstance().newTransformer();
   
   transform.setParameter(OutputKeys.ENCODING, "UTF-8");
   
   NodeList nodeList = (NodeList) xPath
   .evaluate("//book[title='Learning XML']", document,
     XPathConstants.NODESET);
   //获取price节点
   Element be = (Element)nodeList.item(0);

   //获取price  把它修改成3000.00
   Element e = (Element)(be.getElementsByTagName("price").item(0));
   e.setTextContent("3000.00");
   
   Result result = new StreamResult(System.out);
   //通过Transformer修改
   transform.transform(new DOMSource(document),result);
   
  } catch (Exception e) {
   e.printStackTrace();
  }

 }
}

 

结果显示:

 

<?xml version="1.0" encoding="UTF-8" standalone="no"?><bookstore>
 
<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

 


<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

 

 
<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>

3000.00</price>
</book>

 

</bookstore>

分享到:
评论

相关推荐

    java xml.java操作XML文档

    通过DOM,我们可以方便地遍历和修改XML文档的任何部分。例如,使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`类可以创建和操作DOM树。以下是一个简单的例子: ```java import javax.xml....

    XML读取和创建

    本文将详细讲解XML的读取、创建、修改和保存的相关知识点。 一、XML的基本结构与语法 XML文档以XML声明开始,如`&lt;?xml version="1.0" encoding="UTF-8"?&gt;`,它指定了文档的版本和编码。XML文档由元素(Element)、...

    java_xml_api,java操作XML文档

    Java XML API是Java平台提供的一套用于处理XML文档的接口和类,它使得开发者能够方便地在Java程序中创建、解析、修改XML文档。本文将深入探讨Java XML API中的核心组件,包括SAX(Simple API for XML)、DOM...

    xml入门 解析与创建 入门练习

    XML(Extensible Markup ...通过练习和理解上述解析方式,你可以更有效地读取、修改和创建XML文档。在编程时,应根据文件大小和性能需求选择合适的解析策略。同时,熟悉DOM库如dom4j可以提高开发效率,简化XML操作。

    java xml,java生成xml文档,java操作XML文件设置值

    在Java中,我们可以使用多种库来创建、读取、修改和解析XML文档。本篇文章将深入探讨如何使用Java生成XML文档以及操作XML文件设置值。 一、Java生成XML文档 1. DOM(Document Object Model):DOM是W3C推荐的一种...

    对xml文档进行重组

    在Java中,我们可以使用DOM(Document Object Model)解析器,如javax.xml.parsers.DocumentBuilderFactory,创建一个解析器实例,加载XML文档,并将其转化为一个DOM树。DOM允许随机访问任何部分的文档,但会占用...

    java导入导出xml文件

    3. StAX解析:使用`XMLInputFactory`创建`XMLStreamReader`,然后逐个读取XML事件,如`StartElement`, `Characters`, `EndElement`等。StAX允许程序员控制解析过程,适合流式处理和低内存应用。 对于导出XML文件,...

    jdom 操作xml文档

    JDOM(Java Document Object Model)是Java平台上的一个开源库,专门用来处理XML文档,提供了高效且方便的方式来创建、读取、修改XML文档。 在Java中,使用JDOM进行XML操作主要涉及以下几个核心概念和步骤: 1. **...

    操作xml文件_保存xml文件_操作XML_

    总结,操作XML文件包括创建XML文档、使用不同类型的解析器进行读取、通过DOM进行修改以及使用TransformerAPI保存。这些基本操作构成了XML处理的核心,掌握它们对于任何涉及XML的工作都至关重要。在实际开发中,还...

    Xml解析.docx

    DOM解析器将整个XML文档加载到内存中,构建一个树形结构,允许开发人员遍历和修改XML文档的任何部分。在Java中,DOM解析通常通过`javax.xml.parsers.DocumentBuilderFactory`和`javax.xml.parsers.DocumentBuilder`...

    java 操作xml文件(包含xml文件和对应jar包)

    我们可能需要读取XML文件中的数据,例如,使用DOM API的`DocumentBuilderFactory`和`DocumentBuilder`来创建`Document`对象,然后通过`getElementsByTagName`、`getElementsByTagnameNS`等方法查找元素,再用`...

    XML_JAVA指南

    本指南“XML_JAVA指南”将深入探讨如何在Java环境中解析、生成、修改和处理XML文档。 首先,理解XML的基本结构至关重要。XML文档由元素、属性、文本内容和注释等组成。元素是XML文档的核心,它们用尖括号包围,如`...

    java生成指定格式的XML

    DOM是处理XML文档的一种常见方式,它将XML文档解析为一个树形结构,允许开发者通过节点操作来构建或修改XML文档。在Java中,可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`类来实现...

    export_xml.rar

    这些代码可能涵盖了创建XML Document对象、使用Transformer将Document转换为字符串或写入文件、或者使用JAXB进行对象到XML的映射。 对于导入XML,Java同样提供了相应的工具。例如,可以使用JAXB的Unmarshaller对象...

    Java Xml 编程指南书籍源码

    开发者可以通过遍历节点来访问和修改XML内容。例如,`org.w3c.dom.Document`接口代表整个文档,`Node`接口表示文档中的每一个元素、属性或文本。 2. SAX API:这是一种事件驱动的解析器,适用于处理大型XML文档。...

    读取和修改xml文件

    修改完成后,需使用`Transformer`将`Document`对象转换回XML字符串,保存到文件。 8. **XPath和XSLT** XPath是一种在XML文档中查找信息的语言,可以用来定位元素、属性等。XSLT(XSL Transformations)则用于转换...

    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解析中的应用,特别...

    通过JAVA生成XML

    本篇主要介绍如何通过Java编程语言生成XML文档,结合“XML项目开发中用到的”这一标签,我们将深入探讨Java API中的DOM、SAX和StAX三种解析器,以及它们在创建XML文件时的应用。 1. DOM(Document Object Model)...

    dom读取xml与写入xml

    5. 操作DOM:可以添加、删除、修改节点,实现对XML文档内容的修改。 写入XML文件时,通常涉及以下过程: 1. 创建DOM树:使用DOM API创建一个新的DOM树结构,这可能涉及到创建元素、属性和文本节点。 2. 修改DOM树...

Global site tag (gtag.js) - Google Analytics