`

java 4种XML解析方式比较

    博客分类:
  • xml
阅读更多

在从收藏的网资料上查到的xml4中解析方式,感觉自己也有混淆的地方。对比学习了一下。原文网址:

http://luckyapple.iteye.com/blog/455445

Javax.xml.parsers中包含

1.       DocumentBuilderFactorydocumentBuilder他们得出了org.w3c.dom.Document,需要加载整个XML文档(类在jre系统库rt.jar中)。

2.       SAXParserFactorySAXParser,事件驱动,需要写解析处理。不需要加载整个文档。(类在jre系统库rt.jar中)

3.       JDOM需要下载jar包。从接口转为具体类,大量使用collections,目的是使用20%(或更少) 的精力解决80%(或更多)Java/XML问题。

4.       Dom4j需要下载插件dom4j.jar,是JDOM的一个智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、 XML Schema支持以及用于大文档或流化文档的基于事件的处理。具有性能优异、功能强大和极端易用使用的特点。(有移植性问题)

 5. 根据在Updater.java中两个解析xml的方法进行验证:

 

使用代码

本地文件

网络文件

使用方式

测试文件

W3C.dom

DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();

            document = parser.parse(“e:/site.xml”);

       //Element root = document.getDocumentElement();

            Element root = (Element)document.getFirstChild();

            NodeList l = root.getElementsByTagName("feature");

e:/site.xml

通过

http://10.80.68.10:8080 /xxx/site.xml

不通过

Main()方法中读取

Site.xml

Dom4j

SAXReader saxReader = new SAXReader();

document = saxReader.read(new File(“e:/feature.xml”));

org.dom4j.Element root = document.getRootElement();

            List<?> elements = root.elements("plugin");

 

e:/feature.xml

通过

http://10.80.68.10:8080 /xxx/feature.xml

不通过

Main()方法中读取

 

Feature.xml

W3C.dom

URL url = new URL(destUrl);

             // 获取网络输入流

             bis = new BufferedInputStream(url.openStream());

 

DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();

            document = parser.parse(bis);

e:/site.xml

不通过

http://10.80.68.10:8080 /xxx/site.xml

通过

Main()方法中读取

 

 

Dom

4j

SAXReader saxReader = new SAXReader();

            document = saxReader.read(new URL(featureFile));

e:/feature.xml

不通过

http://10.80.68.10:8080 /xxx/feature.xml

通过

Main()方法中读取

 

 

 

w3c.dom,parser在解析时如果参数为字符串,那么应该是uri的字符串,而不是本地文件绝对路径的字符串(需要验证)

古老的W3c.dom在写出xml时的方法已经忘了,这里做个例子。

privatestaticvoid writeDocumentWithW3Cdom(org.w3c.dom.Document document,String outPath)

    {

        try

        {

            FileWriter out = new FileWriter(outPath);

            DOMSource domSource = new DOMSource(document);

            StreamResult streamResult = new StreamResult(out);

 

            TransformerFactory tf = TransformerFactory.newInstance();

            Transformer serializer = tf.newTransformer();

            // set encoding from a command argument

            serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

            serializer.setOutputProperty(OutputKeys.INDENT, "no");

            serializer.setOutputProperty(OutputKeys.METHOD, "xml");

            serializer.transform(domSource, streamResult);

            out.close();

//创建w3c.document的节点

            //Element stu = doc.createElement("学生");

            //stu.setAttribute("性别", s.getSex());

            //root.appendChild(stu);// 添加属性  

       

            // 创建文本姓名节点

            //Element name = doc.createElement("姓名");

            //stu.appendChild(name);

            //Text tname = doc.createTextNode(s.getName());

            //name.appendChild(tname);

        }

        catch (Exception e)

        {

            e.printStackTrace();

        }

    }

 

分享到:
评论

相关推荐

    java xml解析工具类 java xml解析工具类

    java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...

    java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xml

    java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava...

    java心电图xml解析.zip

    Java XML解析是Java开发中的一项重要技能,尤其是在处理结构化数据时。XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于配置文件、数据交换和文档存储等领域。本压缩包“java心电图xml解析....

    java XML解析方式实现自动生成word文档

    XML解析方式是一种高效且灵活的方法,能够帮助我们实现这一目标。本篇文章将详细探讨如何利用Java和XML解析来自动化创建Word文档。 首先,我们需要了解XML的结构。XML(Extensible Markup Language)是一种标记语言...

    java解析XML的四种方式

    选择哪种XML解析方式取决于具体的应用场景和需求。如果需要处理小型到中型的XML文件,并且需要随机访问和修改文档内容,那么DOM是一个好选择。对于大型文件或者实时数据流处理,SAX是更好的选择。JDOM和DOM4J则在...

    java 解析xml 多级

    Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...

    Java解析XML四种方式

    在进行XML解析时,除了选择合适的API,还应关注性能优化、错误处理和安全性。例如,避免使用可能导致内存溢出的DOM解析大文件,确保SAX和StAX的事件处理器设计得高效,以及防止XML注入攻击等安全问题。 总结,Java...

    java实现xml解析word文档代码实现

    Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。然而,这些库都有其自己的局限性,例如 POI 库只能获取 Word 文档中的书签,而不能进行操作。Java2Word 库可以实现 Word 文档的...

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    JAVA调用webservice并解析xml

    总结,调用Java中的Web服务并解析XML涉及到了Web服务的基础概念、Java的Web服务客户端创建、XML解析技术以及实际的调用与响应处理。熟练掌握这些知识点,能够帮助开发者有效地集成和利用各种Web服务资源。

    java解析xml四种方式完整项目

    JDOM是专门为Java设计的XML解析库,提供了与DOM类似的功能,但使用了更直观的Java API。JDOM比DOM更轻量级,且易于使用,适合小型到中型的XML处理任务。然而,由于它不遵循标准的DOM API,可能限制了与其他DOM兼容库...

    java 解析XML性能对比分析Demo

    本文将深入探讨几种不同的XML解析方法,并通过实际的“Java解析XML性能对比分析Demo”来展示它们的性能差异。我们将讨论DOM、SAX、JDOM、DOM4J和JAXB这五种解析器,以及它们各自的特点和适用场景。 1. DOM(文档...

    java大作业xml解析

    Java大作业中涉及的XML解析是一项重要的编程任务,XML(eXtensible Markup Language)是一种用于标记数据的语言,因其灵活性和可扩展性被广泛应用于数据存储、配置管理和数据交换。XML文件以.xml为后缀,其结构清晰...

    java常用的4种xml解析方式

    ### Java常用的四种XML解析方式详解 #### 一、DOM(Document Object Model)解析 DOM是一种树状结构的解析方式,由W3C推荐标准。它将XML文档转换为树形结构,每个节点都是一个对象,可以对这些对象进行读取、修改等...

    Java 解析 xml 3种方法

    Java XML解析是开发中常见的任务,它涉及到将XML文档转换为程序可以操作的数据结构。XML(eXtensible Markup Language)是一种标记语言,常用于数据交换、配置存储等场景。在Java中,有多种方式来解析XML,主要包括...

    Java解析XML的jar包+四种解析方法

    java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

Global site tag (gtag.js) - Google Analytics