在从收藏的网资料上查到的xml4中解析方式,感觉自己也有混淆的地方。对比学习了一下。原文网址:
http://luckyapple.iteye.com/blog/455445
Javax.xml.parsers中包含
1. DocumentBuilderFactory,documentBuilder他们得出了org.w3c.dom.Document,需要加载整个XML文档(类在jre系统库rt.jar中)。
2. SAXParserFactory,SAXParser,事件驱动,需要写解析处理。不需要加载整个文档。(类在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在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava...
Java XML解析是Java开发中的一项重要技能,尤其是在处理结构化数据时。XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于配置文件、数据交换和文档存储等领域。本压缩包“java心电图xml解析....
XML解析方式是一种高效且灵活的方法,能够帮助我们实现这一目标。本篇文章将详细探讨如何利用Java和XML解析来自动化创建Word文档。 首先,我们需要了解XML的结构。XML(Extensible Markup Language)是一种标记语言...
选择哪种XML解析方式取决于具体的应用场景和需求。如果需要处理小型到中型的XML文件,并且需要随机访问和修改文档内容,那么DOM是一个好选择。对于大型文件或者实时数据流处理,SAX是更好的选择。JDOM和DOM4J则在...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
在进行XML解析时,除了选择合适的API,还应关注性能优化、错误处理和安全性。例如,避免使用可能导致内存溢出的DOM解析大文件,确保SAX和StAX的事件处理器设计得高效,以及防止XML注入攻击等安全问题。 总结,Java...
Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。然而,这些库都有其自己的局限性,例如 POI 库只能获取 Word 文档中的书签,而不能进行操作。Java2Word 库可以实现 Word 文档的...
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
总结,调用Java中的Web服务并解析XML涉及到了Web服务的基础概念、Java的Web服务客户端创建、XML解析技术以及实际的调用与响应处理。熟练掌握这些知识点,能够帮助开发者有效地集成和利用各种Web服务资源。
JDOM是专门为Java设计的XML解析库,提供了与DOM类似的功能,但使用了更直观的Java API。JDOM比DOM更轻量级,且易于使用,适合小型到中型的XML处理任务。然而,由于它不遵循标准的DOM API,可能限制了与其他DOM兼容库...
本文将深入探讨几种不同的XML解析方法,并通过实际的“Java解析XML性能对比分析Demo”来展示它们的性能差异。我们将讨论DOM、SAX、JDOM、DOM4J和JAXB这五种解析器,以及它们各自的特点和适用场景。 1. DOM(文档...
Java大作业中涉及的XML解析是一项重要的编程任务,XML(eXtensible Markup Language)是一种用于标记数据的语言,因其灵活性和可扩展性被广泛应用于数据存储、配置管理和数据交换。XML文件以.xml为后缀,其结构清晰...
### Java常用的四种XML解析方式详解 #### 一、DOM(Document Object Model)解析 DOM是一种树状结构的解析方式,由W3C推荐标准。它将XML文档转换为树形结构,每个节点都是一个对象,可以对这些对象进行读取、修改等...
Java XML解析是开发中常见的任务,它涉及到将XML文档转换为程序可以操作的数据结构。XML(eXtensible Markup Language)是一种标记语言,常用于数据交换、配置存储等场景。在Java中,有多种方式来解析XML,主要包括...
java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML