`
kuyuyingzi
  • 浏览: 52626 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

进入黑马day2-解析xml三种方法(1)jaxp解析

 
阅读更多

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

    J2EE Web Services: XML SOAP WSDL UDDI WS-I JAX-RPC JAXR SAAJ JAXP

    dom4j---xml解析jar包

    dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。

    XML的Jaxp解析示例和简单项目

    XML有3中解析方式:Jaxp、Jdom和dom4j 这个是sun公司提供的简单的Jaxp解析方式。

    使用JAXP之SAX读取XML内容

    计算机科学与技术专业使用JAXP之SAX读取XML内容~~

    使用jaxp开发包中的SAX方式解析xml文档

    day02_xml *demo01.App1\App2\App3 使用jaxp开发包中的SAX方式解析xml文档,该方式只能读取文档 *demo4j01.App dom4j CURD XML *domo4j.ex 对dom4j 的封装例子

    经典的DOM解析XML范例

    用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)...

    4种常见的xml解析方法

    DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以 层次结构组织的节点或信息片断的集合。

    java解析xml及4种常用解析比较

    1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个...

    High-Performance XML Processing

    (eBook) - Computers - JAVA+XML - ts2599 - High-Performance XML Processing - Techniques & Tips With the Java API for XML Processing (JAXP) 1.3.pdf

    XML解析包(xalan.jar+xerces.jar+xml-apis.jar)

    当项目报关于XML文件无法解析的错误, 将三个包拷贝到tomcat...Xerces是XML解析器,Xalan是格式化器,xml-apis实际上是JAXP。一般App Server都会带上,JDK1.4也包含了解析器,不过不是Xerces,是Crimson,效率比较差。

    Android 解析XML 文件的四种方法总结

    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定...

    xalanjava源码-sxml-jaxp:用于在JAXP中使用SXML启发的XML表示的Clojure库

    java源码sxml-jaxp sxml-jaxp是一个工具库,用于将 SXML 启发的 XML 表示与 Java XML 基础结构一起使用。 它在内部使用 JAXP,因此它不依赖于任何特定的 XML 库,尽管作者已使用 OpenJDK 默认的 Xerces/Xalan 和 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第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 and XML, 3rd Edition

    《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定...

    Dom4j 解析XML

    与利用DOM、SAX、JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异、功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml。dom4j是一套开源的api。实际项目中,往往选择...

    在老项目中加入struts2,xml报错

    启动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

    XML_JAVA指南.rar_WORKING_java Tutorial_java xml_jaxp_xml

    Working with XML The Java API for Xml Parsing (JAXP) Tutorial

    Java Web Service 程序例子

    Java Web Service 学习例子,里面有大量用来开发web services的Java程序示例,非常值得学习。 使用到的技术及工具如下: Apache: ... -- JAXP -- J2SE -- J2EE -- JCE -- JSSE -- JAAS

    开源XML解析包dom4j

    一个很好的用来解析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 ...

Global site tag (gtag.js) - Google Analytics