`
zjx2388
  • 浏览: 1333996 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

XPath解析xml文件例子

    博客分类:
  • J2EE
阅读更多
package com.xpath.test;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
 * @description 使用JDOM包中的XPath解析xml文件
 * @author Zhou-Jingxian
 *
 */
public class XPathSample {
 public static void main(String[] args) {
  try {
   DocumentBuilderFactory factory = DocumentBuilderFactory
     .newInstance();
   factory.setNamespaceAware(true);
   DocumentBuilder builder = factory.newDocumentBuilder();
   File file = new File(XPathSample.class.getResource("Book.xml").getFile());
   //"D:/J2EE/studyspace_6.0/XPathSample/books.xml"
   Document doc = (Document) builder.parse(file);
   XPathFactory xFactory = XPathFactory.newInstance();
   XPath xpath = xFactory.newXPath();
   String booknames = xpath.evaluate("/books/book[2]/name", doc);
   System.out.println(booknames);
   
   String expression = "";
//   expression = "//book[name='Thinking in Java']";
   expression = "//book";
   XPathExpression expr = xpath.compile(expression);
   Object result = expr.evaluate(doc, XPathConstants.NODESET);
   NodeList nodes = (NodeList) result;
   for (int i = 0; i < nodes.getLength(); i++) {
    Node node = nodes.item(i);
    System.out.println(node.getBaseURI() + "--"
      + node.getLocalName() + "--" + node.getNamespaceURI()
      + "--" + node.getNodeName() + "--" + node.getNodeType()
      + "--" + node.getPrefix() + "--"
      + node.getTextContent() + "--" + node.getAttributes()
      + "--" + node.getOwnerDocument() + "--"
      + node.getParentNode() + "--"
      + nodes.item(i).getNodeValue());
   }
  } catch (XPathExpressionException e) {
   e.printStackTrace();
  } catch (ParserConfigurationException e) {
   e.printStackTrace();
  } catch (SAXException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}
Book.xml和XPathSample同目录
<?xml version="1.0" encoding="UTF-8"?>
<books>
	<book>
	    <name>Java Core II</name>
	    <price>119.00RMB</price>
	</book>
	
	<book>
	    <name>Effective Java</name>
	    <price>52.00RMB</price>
	</book>
	
	<book>
	    <name>Thinking in Java</name>
	    <price>108.00RMB</price>
	</book>
</books>
 

http://www.jdom.org/可以下载JDOM的最新版本,将压缩包中的jdom.jar及lib目录下的全部jar包加入到classpath就可以了。 (附件上传了一个1.1.1的jdom包)

 

更多XPath讲解请看http://www.ibm.com/developerworks/cn/xml/x-jdom/

分享到:
评论
2 楼 zjx2388 2011-08-24  
多谢TenAclock提醒,是写反位置了
1 楼 TenAclock 2011-08-16  
首先感谢楼主的分享,赫赫,我也是刚学习这个Xpath ,
你提供的xml文件好像有一点的问题应该是第一行写错位置了吧
引用

<pre name="code" class="Book.xml"><?xml version="1.0" encoding="UTF-8"?>

是应该
<?xml version="1.0" encoding="UTF-8"?>
<pre name="code" class="Book.xml">

更符合标准一些的。

相关推荐

    Dom4j结合XPath解析XML文件路径表达式

    本篇文章将深入探讨如何使用Dom4j,一个流行的Java库,结合XPath来解析XML文件中的路径表达式,同时阐述相对路径和绝对路径的匹配原则。 首先,我们要了解Dom4j库。Dom4j是一个灵活且高效的处理XML的Java库,它提供...

    XPathUtil,根据Xpath解析xml文件

    之前找了好多感觉和自己的需求不太一样,这个可以根据Xpath解析出来xml里所有的信息,十分好用 举个例子 xmlPath = "E://upload/xml/1580242.163.xml"; XPathUtil util = XPathUtil.newInstance(xmlPath); Product ...

    基于Xpath的xml文件查询和更新

    `DOMTEST`可能是测试DOM操作的示例文件,可能包含了各种元素结构,用于演示如何使用Xpath进行查询和更新。在实际应用中,这样的文件通常包含一些XML结构,以便开发者可以编写代码进行查询和修改测试。 总结来说,...

    Xpath 解析xml文件转化为csv文件

    在"tests2csv"这个例子中,很可能是一个测试项目,包含了一些XML文件,目标是将这些XML文件中的数据用XPath选取出来并转化为CSV格式。这可能涉及到多个XML文件的处理,以及对不同XML结构的理解和适配。 总结一下,...

    xpath解析xml

    在本篇文章中,我们将深入探讨如何利用XPath来解析XML文件,并且会提及如何通过XPath操作Map集合,从而避免过多地生成Java Bean类。 首先,理解XML文档的结构至关重要。XML是一种标记语言,用于存储数据,其结构...

    js中使用xpath来解析xml元素实用.pdf

    总结一下,JavaScript中使用XPath解析XML元素的关键知识点包括: 1. XPath是用于在XML文档中查找信息的语言,它基于路径表达式。 2. `selectNodes()`和`selectSingleNode()`方法在IE中用于选取XML节点,但不是标准...

    解析xml文件并且保存xpath

    本文将深入探讨如何解析XML文件并利用XPath(XML Path Language)选取特定节点,以及可能涉及到的相关工具和源码分析。 一、XML基本概念 XML是一种自描述性的文本格式,它通过标签来描述数据的结构和内容。与HTML...

    xpath读取XML节点

    2. **读取XML文件**:使用`SAXBuilder`类解析XML文件,创建一个`Document`对象,这是JDOM中的XML文档模型。 ```java File xmlFile = new File("path_to_your_xml_file"); SAXBuilder builder = new SAXBuilder(); ...

    使用JDOM解析XML文件

    下面是一个使用SAXBuilder解析XML文件的示例: ```java import org.jdom2.Document; import org.jdom2.input.SAXBuilder; public class JdomExample { public static void main(String[] args) { try { ...

    Dom4j 、XPath解析Xml所需的jar包和dom4j API

    在Java编程中,解析XML文档通常需要借助库,如DOM4J和XPath。DOM4J是一个灵活且功能强大的开源Java XML API,它提供了XML的读取、写入、修改和遍历等功能。XPath则是W3C标准中的一个查询语言,用于在XML文档中查找...

    java使用xpath解析xml示例分享

    在Java中,XPath被用来解析XML文档,查找和操作XML中的特定节点。XPath基于XML文档的树形结构,允许我们通过简洁的表达式定位到树中的任何节点,包括元素、属性、文本等。以下是使用Java的XPath API解析XML文档的一...

    Java中使用xpath获取xml中的数据

    在这个例子中,我们首先创建一个`DocumentBuilder`实例,然后解析XML文件到`Document`对象。接着,通过`XPathFactory`和`XPath`接口,我们可以编译XPath表达式并执行它。`evaluate()`方法返回的结果可以是节点集、...

    pb解析xml文件示例.rar

    本示例"pb解析xml文件示例.rar"提供了一个使用PowerBuilder解析XML文件的实践案例,这对于开发人员在处理XML数据时极具参考价值。 首先,我们要理解XML的基本结构。XML文件由元素(Element)、属性(Attribute)、...

    从XML文件抽出XPath - C and C++

    在这个主题中,我们将深入探讨如何在C和C++中使用XPath来解析XML文件。 首先,让我们了解C++中处理XML文件的基本步骤。C++中常用的库有TinyXML和pugixml,这两个库都提供了解析XML文档的功能。在提供的文件`get_...

    java解析xml文件的例子(三中方式的都有,很全)

    本示例提供了三种不同的方法来解析XML文件,并结合了数据库连接,特别是使用Oracle数据库。下面将详细介绍DOM、SAX和DOM4J这三种解析器的工作原理以及如何在Java中实现它们。 1. DOM(文档对象模型)解析: DOM是一...

    支持xpath的高效xml解析库源代码

    同时,它的解析算法经过优化,能快速地解析XML文档,即使面对大型XML文件也能保持良好的性能。 **源代码结构** 在提供的压缩包中,我们可以看到以下几个主要部分: 1. **Makefile** - 用于构建项目的配置文件,...

    XPath解析工具

    在本案例中,我们讨论的是一个使用C#编写的XPath解析工具,该工具能够帮助开发者更方便地操作XML文档,提取所需的数据。 XPath工具的主要功能可能包括以下几点: 1. **节点选取**:XPath表达式可以用来选择XML文档...

    PB解析xml指定路径的节点内容

    这个例子展示了如何在PowerBuilder 12.5中解析XML文件,特别是获取指定路径下的节点内容和属性值。XML(Extensible Markup Language)是一种用于存储和传输数据的标准化格式,广泛应用于数据交换、配置文件等场景。 ...

    SQL 解析XML数据示例

    本示例将深入探讨如何使用SQL语言解析XML数据,这在处理包含复杂结构信息的数据时非常有用。我们将通过分析`Test01.sql`脚本和参考`a.xml`文件来展示这些操作。 首先,让我们了解XML数据类型。SQL Server 2005及更...

Global site tag (gtag.js) - Google Analytics