`
yangwei
  • 浏览: 58909 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JDom结合XPath的查找一列

阅读更多
JDom结合XPath的查找一列
2008-04-01 15:00
XML使用XPath的查询,就像我们平常操作数据库一样,根据某一关键字,然后取出关键字所对应的记录,然后再取出其对应的属性值。
如果想更详细了解JDom中XPath的使用,请参阅文章:
http://blog.csdn.net/fenglibing/archive/2007/07/01/1674201.aspx

import java.io.FileInputStream;
import java.util.List;
import org.jdom.xpath.*;
import org.jdom.input.SAXBuilder;
import org.jdom.*;

/**
* 使用JDOM操作XML文件示例--利用XPath进行查找操作
* 步骤:
* 1、去www.jdom.org下载jdom 1.0,也只有这个版本,因为作为觉得简单的才是最好的,除非XML更改才会对程序更行更改
* 2、准备XML文件,将放在指定的目录下:
* <?xml version="1.0" encoding="UTF-8" ?>
    <student>
    <user id="1">
        <name>test_boy</name>
        <age>23</age>
        <sex>boy</sex>
    </user>
    <user id="2">
        <name>test_girl</name>
        <age>20</age>
        <sex>girl</sex>
    </user>
    </student>
× 3、将代码放进去,直接运行并查看结果,就OK了
*/
public class JDomSearchTest
{
String xmlPath = "e:\\Mickey\\test2.xml";//原文件,必须存在
SAXBuilder builder=new SAXBuilder();
Document document;
public JDomSearchTest()
{
    try
    {
      document=builder.build(new FileInputStream(xmlPath));
    }
    catch (Exception e)
    {
       e.printStackTrace();
    }
}

public static void main(String[] args)
{   
    JDomSearchTest j=new JDomSearchTest();
    Element root=j.document.getRootElement();
    List list=null;
    try
    {
      //下面进行从得到的root下面的/student/user开始查找
      //此的/student/user就相当于我们常见的目录地址一样
      //因为XML的组织形式本来就是树形的
      list = XPath.selectNodes(root,"/student/user");
    }
    catch (JDOMException e)
    {
      e.printStackTrace();
    }
    for(int i=0;i<list.size();i++)
    {
      Element e=(Element)list.get(i);
      //取得属性
      String id=e.getAttributeValue("id");
      try
      {
        //利用属性进行查寻
        //得到对应id下面的name的值
        String name = ((Text)XPath.selectSingleNode(e,"//user[@id="+id+"]/name/text()")).getTextNormalize();
        //得到对应id下面的age的值
        String age=((Text)XPath.selectSingleNode(e,"//user[@id="+id+"]/age/text()")).getTextNormalize();
        //得到对应id下面的sex的值
        String sex=((Text)XPath.selectSingleNode(e,"//user[@id="+id+"]/sex/text()")).getTextNormalize();
        System.out.println("name:"+name);
        System.out.println("sex:"+sex);
        System.out.println("age:"+age);
        System.out.println("--------------------");
      }
      catch (JDOMException f)
      {
        f.printStackTrace();
      }
    }
}
}
分享到:
评论

相关推荐

    JDOM中XPath.selectNodes()和XPath.selectSingleNode()用法

    在实际应用中,JDOM结合XPath可以极大地提高处理XML文档的效率和灵活性。例如,你可以在Web服务、配置文件处理、数据交换等多个场景中利用它们的功能。了解并熟练掌握这两个方法,将有助于你更好地驾驭XML文档的处理...

    基于jdom的xpath解析数据

    结合JDOM和XPath,开发者可以快速、灵活地从XML文档中提取所需信息。然而,需要注意的是,虽然XPath提供了强大的功能,但过度使用复杂的XPath表达式可能导致性能下降,因为每个表达式都需要解析和编译。因此,合理...

    XML解析,简单易学(Jdom+XPath): 精简Demo(含jar包).rar

    **XPath**是XML路径语言,用于在XML文档中查找信息。它提供了一种简洁的方式来选取XML文档中的节点,如元素、属性、文本等。在Java中,我们可以使用JAXP(Java API for XML Processing)提供的XPathAPI来实现XPath...

    xpathDemo.zip

    在这个"xpathDemo.zip"中,我们可以看到一个使用JDOM和XPath结合的示例。JDOM允许开发者以一种与XML结构相对应的方式在Java程序中创建和操作XML文档。通过JDOM,你可以创建新的XML文档,修改现有文档,或者查询文档...

    jdom-contrib-1.0.zjip

    在JDOM中,没有内置的XPath支持,但通过`jdom-contrib`,我们可以将XPath与JDOM结合,实现以下功能: 1. **XPath解析**:`jdom-contrib`提供了`XPathReader`类,可以解析XPath表达式并返回一个匹配的节点集合。这...

    jdom 下载 jdom 下载

    - **查询XML**:JDOM支持XPath表达式,可以方便地查找XML文档中的节点。 - **序列化XML**:将XML对象转换回XML字符串,以便输出到文件或网络。 **3. JDOM的安装与下载** JDOM的最新版本可以在官方网站或者通过Maven...

    jdom1.1.3xml解析工具类

    JDOM是由以下几个包组成的: org.jdom包含了所有的xml文档要素的java类 org.jdom.adapters包含了与dom适配的java类 org.jdom.filter包含了xml文档的过滤器类 org.jdom....org.jdom.xpath包含了对xml文档xpath操作的类

    dom+xpath的jar

    在Java开发中,使用DOM4J或其他类似库(如JDOM、XMLBeans等)结合XPath,可以高效地读取、修改XML数据。这些库提供了API,使得开发者能够轻松地将XPath表达式转换为实际的节点操作,从而实现对XML文档内容的动态查询...

    jdom jar下载

    JDOM是由以下几个包组成的: org.jdom包含了所有的xml文档要素的java类 org.jdom.adapters包含了与dom适配的java类 org.jdom.filter包含了xml文档的过滤器类 org.jdom....org.jdom.xpath包含了对xml文档xpath操作的类

    xpath读取XML节点

    总之,XPath和JDOM结合使用,为Java开发者提供了一种强大而灵活的方式来处理XML数据。理解XPath语法,掌握JDOM的API,将使你在处理XML文档时更加得心应手。在实际项目中,你可以根据需求调整和优化这些基本步骤,...

    jdom源码+jdom.jar

    6. **`XPath`**:JDOM支持XPath表达式,通过`XPath`类可以方便地查找XML文档中的特定节点。 在实际应用中,你可以使用JDOM来执行以下操作: - **解析XML**:通过`SAXBuilder`或`DOMBuilder`从XML文件或字符串创建`...

    JDOM使用详解及实例(解析xml

    JDOM是一个专为Java设计的XML处理库,它结合了SAX和DOM的优点,提供了一种更高效且方便的方式来解析、创建和操作XML文档。JDOM的核心思想是创建一个基于Java对象模型的XML文档表示,使得开发者能够利用Java的强大...

    使用JDOM解析XML文件

    XPath是一种在XML文档中查找信息的语言,JDOM提供了Jaxen库来支持XPath。例如,以下代码演示了如何找到文档中的特定元素: ```java import org.jdom2.xpath.XPathExpression; import org.jdom2.xpath.XPathFactory;...

    jdom-1.1.2&jdom帮助文档

    3. **查询与修改**:JDOM 支持 XPath 查询语言,可以方便地查找文档中的特定元素。同时,可以使用 Element 和 Attribute 的方法直接修改 DOM 树。 4. **序列化**:将 Document 对象转换回 XML 字符串,可以使用 ...

    JDOM(java)使用详解及实例

    org.jdom.xpath 包含了对xml文档xpath操作的类三、JDOM 类说明 1、org.JDOM这个包里的类是你J解析xml文件后所要用到的所有数据类型。 Attribute CDATA Coment DocType Document Element EntityRef ...

    JDOM使用详解及实例

    JDOM 是一个专门为Java设计的XML处理库,它结合了SAX和DOM的优点,提供了一种高效且易于使用的API来创建、解析和操作XML文档。JDOM的主要目标是简化XML处理,通过利用Java语言的强大特性,如方法重载、集合和映射,...

    Jdom教程 Jdom教程.pdf

    #### 一、JDOM简介 JDOM(Java Document Object Model)是一种用于处理XML文档的Java库。与SAX和DOM API相比,JDOM提供了更为简洁和直观的方式来创建、读取、修改和输出XML文档。本教程主要介绍了如何使用JDOM进行...

    JDOM v1.0 API

    5. **XPath支持**:JDOM支持XPath表达式,允许快速查找和定位XML文档中的特定部分。`XPath`类提供了一系列方法来执行XPath查询。 ### 应用场景 JDOM在各种Java项目中都有广泛的应用,特别是在XML数据的解析、生成...

    jdom的源代码文档

    此外,`org.jdom.xpath`包提供了XPath支持,使得开发者可以通过XPath表达式快速定位XML文档中的特定部分。这极大地提高了XML数据的查询效率和灵活性。 在实际应用中,JDOM的性能表现良好,尤其是在处理小型XML文档...

    JDOM使用详解XML及实例

    JDOM通过利用Java语言的强大特性,如方法重载、集合和映射,将SAX和DOM的优点结合在一起,简化了XML处理的复杂性。 ### 一、JDOM简介 JDOM由Brett McLaughlin和Jason Hunter于2000年开发,旨在克服DOM和SAX的局限...

Global site tag (gtag.js) - Google Analytics