`

以XPath方式获取XML元素值

阅读更多

下面是一个工具类,以XPath方式获取XML元素值,此工具类于上海期货交易所的一个系统项目中创建,代码如下:

java 代码
  1. /**  
  2.  *   
  3.  */  
  4. package com.test.utils.toolkit;   
  5.   
  6. import java.io.File;   
  7. import java.io.FileNotFoundException;   
  8. import java.net.MalformedURLException;   
  9. import java.util.ArrayList;   
  10. import java.util.Iterator;   
  11. import java.util.List;   
  12.   
  13. import org.dom4j.Document;   
  14. import org.dom4j.DocumentException;   
  15. import org.dom4j.Element;   
  16. import org.dom4j.Node;   
  17. import org.dom4j.io.SAXReader;   
  18.   
  19. /**  
  20.  * @author shjy.nicholas  
  21.  *   
  22.  */  
  23. public class XMLToolkit {   
  24.        
  25.     private String fileName = null ;   
  26.     private Document doc = null ;   
  27.        
  28.     public XMLToolkit(String fileName) throws MalformedURLException, DocumentException, FileNotFoundException {   
  29.         this.fileName = fileName ;   
  30.         this.doc = readDocument() ;   
  31.     }   
  32.        
  33.     private Document readDocument()   
  34.             throws MalformedURLException, DocumentException, FileNotFoundException {   
  35.         SAXReader reader = new SAXReader();   
  36.         Document document = reader.read(new File(this.fileName));   
  37.         return document;   
  38.     }   
  39.   
  40.     public Element getRootElement() {   
  41.         return this.doc.getRootElement();   
  42.     }   
  43.   
  44.     // 获取唯一节点的值   
  45.     public String getNodeValue(String path) {   
  46.         Node node = this.doc.selectSingleNode(path);   
  47.         String value = node.getText() ;   
  48.         return value;   
  49.     }   
  50.        
  51.     // 获取多个同名节点的值   
  52.     public List getNodesValue(String path) {   
  53.         List list = this.doc.selectNodes(path);   
  54.         Iterator it = list.iterator() ;   
  55.         List resultList = new ArrayList() ;   
  56.         while(it.hasNext()) {   
  57.             Node node = (Node)it.next() ;   
  58.             resultList.add(node.getText()) ;   
  59.         }   
  60.         return resultList ;   
  61.     }   
  62.   
  63.     public static void main(String[] args) {   
  64.         try {   
  65.             XMLToolkit xmlTool = new XMLToolkit("home/datasource.xml") ;   
  66.             String value = xmlTool.getNodeValue("//datasources/datasource/driver") ;   
  67.             System.out.println("value: " + value) ;   
  68.         } catch (MalformedURLException e) {   
  69.             e.printStackTrace();   
  70.         } catch (FileNotFoundException e) {   
  71.             e.printStackTrace();   
  72.         } catch (DocumentException e) {   
  73.             e.printStackTrace();   
  74.         }   
  75.            
  76.     }   
  77. }   
元素属性的获取将后续给出。
分享到:
评论

相关推荐

    xpath读取XML节点

    在Java编程中,JDOM库是一个流行的解析和操作XML的工具,它提供了对XPath的支持,使得我们可以方便地通过XPath表达式来读取XML文档的节点。 首先,理解XPath的基本语法是非常重要的。XPath表达式由路径表达式组成,...

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

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

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

    XPath是一种在XML文档中查找信息的语言,它是XML处理中的重要工具。XML(eXtensible Markup Language)是一种标记语言,常...在实际操作中,需要考虑XML的结构、XPath的使用以及数据的组织方式,以实现准确无误的转换。

    dom+xpath读取xml并导入oracle.rar

    本文将深入探讨如何使用DOM和XPath来读取XML数据,并将其有效导入到Oracle数据库中。 首先,DOM是一种将XML文档结构化为树形模型的API,它允许开发者通过节点操作来访问和修改XML文档的任何部分。在Java中,我们...

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

    4. **XPath查询** - 通过`pugi::xpath_query`和`pugi::xpath_node_set`执行XPath表达式获取所需元素。 5. **处理结果** - 解析XPath查询结果,提取或修改XML数据。 6. **保存修改** - 如果需要,使用`pugi::xml_...

    Xpath读取xml文件,实现文件缓存。

    XPath是XML文档遍历和数据提取的重要工具,它允许我们以简洁的方式定位XML文档中的元素、属性和其他节点。在这个场景中,“Xpath读取xml文件,实现文件缓存”指的是利用XPath来高效地检索XML数据,并通过缓存机制...

    用XPath精确定位节点元素

    此外,XPath还支持函数,如count()计算节点数量,string()获取节点的字符串值,normalize-space()去除空格等。 对于“用XPath精确定位节点元素”的主题,掌握以下几个关键点至关重要: 1. **基础语法**:理解路径...

    读取XML属性值.rar

    这个“读取XML属性值.rar”压缩包可能包含了一个示例或工具,用于演示如何在编程中读取XML文档中的属性值。 在读取XML属性值时,我们通常会用到以下知识点: 1. XML的基本结构:XML文档由元素、属性、文本、注释等...

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

    使用libxml2时,我们需要先用`xmlParseDoc()`解析XML,得到`xmlDocPtr`,然后调用`xmlXPathNewContext()`创建XPath上下文,接着使用`xmlXPathEvalExpression()`执行XPath表达式并获取结果集。 XPath表达式的语法...

    java xml xpath介绍

    XPath的通配符可以用来选取未知的XML元素和属性: - `*` 匹配任何元素节点。 - `@*` 匹配任何属性节点。 - `node()` 匹配任何类型的节点。 此外,可以使用“|”运算符选取多个路径: - `//book/title | //book/...

    Dom,Sax,Xpath解析XML实例

    SAX是一种事件驱动的解析方式,它逐行读取XML文档,当遇到元素、属性等结构时触发相应的事件回调。这种方式不需要将整个XML加载到内存,因此内存占用较小,适合处理大型文件。然而,SAX解析不提供直接的元素查找功能...

    用xpath精确定位节点元素

    XPath作为一种强大的工具,不仅简化了XML文档的解析和处理,还提供了灵活多样的节点定位方式。掌握XPath的基本概念和操作是任何处理XML数据的开发者所必需的技能。通过深入理解XPath的数据类型、节点类型以及路径...

    DOM操作XML,XPATH技术

    4. **修改节点**:`nodeValue`属性用于读写文本节点内容,`innerHTML`属性用于设置或获取元素的所有子节点。`appendChild`、`removeChild`、`replaceChild`等方法用于添加、删除和替换节点。 5. **创建新节点**:`...

    查看网页元素的xpath

    XPath 使用路径表达式来选取节点,如元素、属性、文本等。本篇文章将详细探讨如何查看网页元素的 XPath,并介绍其相关知识点。 首先,XPath 的基本概念: 1. **节点**:在 XML 或 HTML 文档中,节点可以是元素(如...

    IE下获取XPATH小工具源码_xpath_

    3. **XPath表达式构建**:在获取到用户选择的元素后,小工具需要根据DOM结构自动生成XPath表达式。这涉及到对DOM树的遍历和XPath语法的理解,包括路径、轴、节点测试和谓语等。 4. **用户交互**:为了方便用户,小...

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

    XPath(XML Path Language)则是用来在XML文档中查找信息的语言,它允许我们通过路径表达式来选取XML节点,如元素、属性、文本等。本篇文章将深入探讨如何使用Dom4j,一个流行的Java库,结合XPath来解析XML文件中的...

    获取网页上 xpath , css 路径的插件, 方便爬虫、自动化测试相关软件工作者快速获取页面上html元素路径

    在IT行业中,尤其是在网页爬虫和自动化测试领域,获取网页上的XPath和CSS选择器路径是一项基本且重要的技能。XPath和CSS选择器是两种常见的定位HTML元素的方法,它们被广泛用于网页抓取、网页自动化和测试工具中。这...

    对Xpath 获取子标签下所有文本的方法详解

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被广泛应用于Web抓取,特别是Python的Scrapy框架中,用于选取XML或HTML文档中的节点。本文将深入探讨如何使用XPath来获取子标签下的所有文本内容...

Global site tag (gtag.js) - Google Analytics