jaxp解析:
//1.获取解析器工厂
DocumentBuilderFactory builderFactory =DocumentBuilderFactory.newInstance();
//2.获取解析器
DocumentBuilderbuilder =builderFactory.newDocumentBuilder();
//3.解析book.xml
Documentdom = builder.parse("book.xml");
//获取第一本书的售价
Stringprice = dom.getElementsByTagName("售价").item(0).getTextContent();
System.out.println(price);
//添加特价节点
//1、.创建特价节点,设置特价节点的标签体为 9.9元
Elementprice2Ele = dom.createElement("特价");
price2Ele.setTextContent("9.9元");
//2、.获取父节点<书>
NodebookNode = dom.getElementsByTagName("书").item(0);
//3、将创建的<特价>节点挂载到父节点上
bookNode.appendChild(price2Ele);
在特价节点插入<作者>节点
//1、参考节点<作者>
NodeauthNode = dom.getElementsByTagName("作者").item(0);
//2、在指定位置增加子节点
bookNode.insertBefore(price2Ele,authNode);
//修改节点标签体
//1、.获取<特价>
Nodeprice2Node = dom.getElementsByTagName("特价").item(0);
//2、.修改<特价>节点的标签体
price2Node.setTextContent("8.8元");
//删除节点
//1、获取想要删除的节点<特价>
Nodeprice2Node = dom.getElementsByTagName("特价").item(0);
//2、取想要删除的节点的父节点<书>
NodebookNode = price2Node.getParentNode();
//3、节点上删除子节点
bookNode.removeChild(price2Node);
//增加属性
//1、取属性所在的<书>节点
ElementbookNode = (Element)dom.getElementsByTagName("书").item(0);
//2、属性
//bookNode.setAttribute("出版社", "人民出版社");
//获取属性
//Stringvalue = bookNode.getAttribute("出版社");
//System.out.println(value);
//修改属性
bookNode.setAttribute("出版社", "人民教育出版社");
//删除属性
bookNode.removeAttribute("出版社");
//最后更新xml文件
//7.1获取转换器工厂
TransformerFactorytransformerFactory = TransformerFactory.newInstance();
//7.2获取转换器
Transformertransformer =transformerFactory.newTransformer();
//transformer.setOutputProperty(OutputKeys.ENCODING,"gb2312");
//7.3将内存中的dom转化为book.xml的xml格式的数据
//FileOutputStreamoutputStream = new FileOutputStream("book.xml");
FileWriterwriter = new FileWriter("book.xml");
transformer.transform(newDOMSource(dom), new StreamResult(writer));
}
附:xml文件节点方法
//遍历所有的节点
@Test
public void list() throws Exception{
//1、获取解析器工厂
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
//
2、获取解析器
DocumentBuilder builder = builderFactory.newDocumentBuilder();
//
3、解析book.xml
Document dom = builder.parse("book.xml");
getNodes(dom);
}
public void getNodes(Node node){
if(node.getNodeType()==Node.ELEMENT_NODE){
System.out.println(node.getNodeName());
}
if(node.getNodeType()==Node.ELEMENT_NODE||node.getNodeType()==Node.DOCUMENT_NODE){
if(node.hasChildNodes()){
NodeList nodeList = node.getChildNodes();
for(int x = 0;x<nodeList.getLength();x++){
node = nodeList.item(x);
getNodes(node);
}
}
}
if(node.getNodeType()==Node.TEXT_NODE){
if(node.getTextContent().trim().length()!=0){
//
if(!node.getTextContent().trim().equals("")){都行
System.out.println(node.getTextContent());}
}
}
}
分享到:
相关推荐
J2EE Web Services: XML SOAP WSDL UDDI WS-I JAX-RPC JAXR SAAJ JAXP
dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
XML有3中解析方式:Jaxp、Jdom和dom4j 这个是sun公司提供的简单的Jaxp解析方式。
计算机科学与技术专业使用JAXP之SAX读取XML内容~~
day02_xml *demo01.App1\App2\App3 使用jaxp开发包中的SAX方式解析xml文档,该方式只能读取文档 *demo4j01.App dom4j CURD XML *domo4j.ex 对dom4j 的封装例子
用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)...
DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以 层次结构组织的节点或信息片断的集合。
1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个...
(eBook) - Computers - JAVA+XML - ts2599 - High-Performance XML Processing - Techniques & Tips With the Java API for XML Processing (JAXP) 1.3.pdf
当项目报关于XML文件无法解析的错误, 将三个包拷贝到tomcat...Xerces是XML解析器,Xalan是格式化器,xml-apis实际上是JAXP。一般App Server都会带上,JDK1.4也包含了解析器,不过不是Xerces,是Crimson,效率比较差。
java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定...
java源码sxml-jaxp sxml-jaxp是一个工具库,用于将 SXML 启发的 XML 表示与 Java XML 基础结构一起使用。 它在内部使用 JAXP,因此它不依赖于任何特定的 XML 库,尽管作者已使用 OpenJDK 默认的 Xerces/Xalan 和 ...
第1章 xml与dtd 2 1.1 xml的产生 2 1.2 w3c介绍 2 1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有一个根元素 6 1.5...
《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定...
与利用DOM、SAX、JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异、功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml。dom4j是一套开源的api。实际项目中,往往选择...
启动Tomcat时错误如下: XML-22103: (Fatal Error) DOMResult can not be this kind of node. 2010-1-3 21:30:49 org.apache.catalina.core....Line: 145 - oracle/xml/jaxp/JXTransformerHandler.java:145:-1
Working with XML The Java API for Xml Parsing (JAXP) Tutorial
Java Web Service 学习例子,里面有大量用来开发web services的Java程序示例,非常值得学习。 使用到的技术及工具如下: Apache: ... -- JAXP -- J2SE -- J2EE -- JCE -- JSSE -- JAAS
一个很好的用来解析XML文件的解析包 DOM4J是dom4j.org出品的一个开源XML解析包,它的网站中这样定义: Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform ...