`

使用xpath操作xml[转]

XML 
阅读更多

基本的XPath语法类似于在一个文件系统中定位文件 
1 如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径。 
2 如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系) 
3 星号 * 表示选择所有由星号之前的路径所定位的元素 
4 方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素 
5 属性通过前缀 @ 来指定 
6 属性的值可以被用来作为选择的准则, normalize-space函数删除了前部和尾部的空格, 并且把连续的空格串替换为一个单一的空格 
7 count()函数可以计数所选元素的个数 
8 name()函数返回元素的名称, start-with()函数在该函数的第一个参数字符串是以第二个参数字符开始的情况返回true, contains()函数当其第一个字符串参数包含有第二个字符串参数时返回true 
8 string-length函数返回字符串的字符数,你应该用&lt;替代<, 用&gt;代替> 
9 多个路径可以用分隔符 | 合并在一起 
10 descendant (后代)轴包含上下文节点的后代,一个后代是指子节点或者子节点的子节点等等, 因此descendant轴不会包含属性和命名空间节点 
11 div运算符做浮点除法运算, mod运算符做求余运算, floor函数返回不大于参数的最大整数(趋近于正无穷), ceiling返回不小于参数的最小整数(趋近于负无穷) 

<AAA> 
   <BBB id=1/> 
   <CCC/> 
   <BBB/> 
   <BBB/> 
   <DDD> 
       <BBB/> 
   </DDD> 
   <CCC/> 
</AAA> 
路径:                    元素 
/AAA                  选择根元素AAA 
/AAA/CCC              选择所有子元素CCC 
/AAA/DDD/BBB          选择子元素DDD中的BBB元素 
//BBB                 选择所有BBB元素 
//DDD/BBB             选择所有父元素是DDD的BBB元素 
/AAA/CCC/DDD/*        选中元素BBB 
/*/*/*/BBB            选择所有的有3个祖先元素的BBB元素 
//*                   选择所有 
/AAA/BBB[1]           选择第一个BBB 
/AAA/BBB[last()]      选择最后一个BBB 
//@id                 选择所有id属性 
//BBB[@id]            选择有id属性的BBB元素 
//BBB[@*]             选择具有属性的BBB元素 
//BBB[not(@*)]        与上相反 
//BBB[@id=1]          选择属性id值等于1的BBB元素 
//BBB[normalize-space(@name)='bbb'] 
//*[count(BBB)=2]     选择含有2个BBB子元素的元素 
//*[count(*)=2]       选择含有2个子元素的元素 
//*[name()='BBB']     选择所有名称为BBB的元素(这里等价于//BBB) 
//*[starts-with(name(),'B')] 选择所有名称以"B"起始的元素 
//*[contains(name(),'C')]  选择所有名称包含"C"的元素 
//*[string-length(name()) > 3]  选择名字长度大于3的元素 
//CCC | //BBB         选择所有的CCC和BBB元素 
/child::AAA/child::BBB 等价于 /AAA/BBB 
/descendant::*        选择文档根元素的所有后代.即所有的元素被选择 
/AAA/BBB/descendant::*  选择/AAA/BBB的所有后代元素 
//CCC/descendant::*   选择在祖先元素中有CCC的所有元素 
//CCC/descendant::DDD  选择所有以CCC为祖先元素的DDD元素 
//DDD/parent::*       选择DDD元素的所有父节点 
/AAA/BBB/DDD/CCC/EEE/ancestor::* 
/AAA/BBB/following-sibling::* following-sibling轴(axis)包含上下文节点之后的所有兄弟节点 
/AAA/XXX/preceding-sibling::* 与上相反 
/AAA/XXX/following::*  包含同一文档中按文档顺序位于上下文节点之后的所有节点, 除了祖先节点,属性节点和命名空间节点 
/AAA/XXX/preceding::*   包含同一文档中按文档顺序位于上下文节点之前的所有节点, 除了祖先节点,属性节点和命名空间节点 
/AAA/XXX/descendant-or-self::*  descendant-or-self 轴(axis)包含上下文节点本身和该节点的后代节点 
/AAA/XXX/DDD/EEE/ancestor-or-self::*  ancestor-or-self 轴(axis)包含上下文节点本身和该节点的祖先节点 
//BBB[position() mod 2 = 0 ]    选择偶数位置的BBB元素 
//BBB[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]   选择中间的BBB元素。

 

更多关注:http://www.lsoba.com

分享到:
评论

相关推荐

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

    XML(eXtensible Markup ...总结来说,基于Xpath的XML文件查询和更新是XML处理的重要部分,它使得在复杂的数据结构中定位和操作数据变得简单高效。了解并熟练掌握Xpath和DOM操作,对于处理XML数据的开发工作至关重要。

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

    XPath使用路径表达式来选取XML文档中的节点。这些路径表达式类似于文件系统中的路径,例如`/root/element`表示从根节点开始,选取名为`element`的子节点。XPath支持多种操作,如选择所有子节点(`*`)、选取具有特定...

    xpath读取XML节点

    使用JDOM进行XPath操作需要以下步骤: 1. **导入依赖**:在Java项目中,首先需要添加JDOM库的依赖。如果使用Maven,可以在pom.xml文件中添加对应的依赖项。 ```xml &lt;groupId&gt;org.jdom &lt;artifactId&gt;jdom2 ...

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

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

    xpath解析xml

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

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

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

    xslt与xpath入门转换xml文档与数据

    XPath表达式可以用来导航XML文档的结构,找到特定的节点,并对这些节点进行操作。XPath的核心在于路径表达式,类似于文件系统中的路径,例如“/root/element”表示从根节点开始查找名为“element”的子元素。 以下...

    DOM操作XML,XPATH技术

    标题"DOM操作XML,XPATH技术"指的是在编程中处理XML文档时,使用Document Object Model (DOM) 和XPath两种主要技术。DOM是一种标准,用于表示XML和HTML文档的树形结构,它允许程序和脚本动态更新、添加、删除和查找...

    Dom,Sax,Xpath解析XML实例

    在处理XML时,我们通常会使用三种主要的解析方式:DOM(Document Object Model)、SAX(Simple API for XML)和XPath(XML Path Language)。下面将详细介绍这三种解析方法,并结合实例进行讲解。 1. DOM解析: DOM...

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

    在Java中,我们可以使用javax.xml.xpath.XPath和XPathConstants类来执行XPath查询: ```java import javax.xml.xpath.*; import org.w3c.dom.NodeList; import org.w3c.dom.Node; XPathFactory xPathFactory = ...

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

    在提供的文件`get_xpath_tinyxml`中,很可能是使用TinyXML库来实现XPath抽取功能的示例。TinyXML是一个轻量级的库,易于理解和使用,它提供了DOM(Document Object Model)模型来表示XML文档,允许开发者遍历整个...

    xpath生成xml

    1.可以根据传入的xpath,生成xml,例如:a/b/c : &lt;a&gt;&lt;b&gt;&lt;c&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt; 2.可以将指定xml字符串添加指定节点 3.xmldocument2String 4.支持属性操作 看到网上几乎没有这样的例子,贡献一下,中国的软件太需要贡献了...

    XPath 为 xml查询语言,方便xml遍历,简化xml操作。

    XPath还支持选择多个路径,使用`|`运算符进行逻辑“或”操作。例如,`/order/item/itemNumber | /order/item/description` 选取`order`下的`item`元素的`itemNumber`和`description`子元素,而 `//itemNumber | //...

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

    3. **解析XML** - 利用`pugi::xml_node`接口遍历和操作XML结构。 4. **XPath查询** - 通过`pugi::xpath_query`和`pugi::xpath_node_set`执行XPath表达式获取所需元素。 5. **处理结果** - 解析XPath查询结果,提取或...

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

    例如,在Java中,可以使用`javax.xml.xpath`包中的`XPath`和`XPathFactory`类来执行XPath表达式;在Python中,可以使用`lxml`库;在JavaScript中,可以借助`DOMParser`和`XPathEvaluator`。同时,可以结合`java.util...

    采用XPATH在线查询XML文件的搜索引擎源码

    描述简单明了,再次强调了这是一个使用XPath实现的在线XML文件搜索引擎的源代码。这意味着开发人员或学习者可以通过查看和运行这些源代码,了解如何在ASP.NET环境中构建这样一个功能,从而提高他们处理XML数据和构建...

    mybatis入门之xpath解析xml

    因此,无论是XML解析还是MyBatis的使用,XPath都是一个不可或缺的知识点,对于初学者来说,掌握XPath的入门知识是迈入这个领域的第一步。通过实际的练习和项目实践,可以进一步提升对XPath和MyBatis的运用能力。

    用XPath 表达式从 XML 文档中提取信息

    在实际应用中,XPath广泛用于XSLT(一种XML转换语言)和各种编程语言(如Java、Python、JavaScript)的XML处理库中,以方便地解析和操作XML数据。例如,在Python的`lxml`库中,可以使用`xpath()`方法执行XPath表达式...

    java xml xpath介绍

    Java XML XPath 是一种在XML文档中查找信息的语言,它被广泛用于Java开发中,以便高效地提取和操作XML数据。XPath使用路径表达式来选取XML文档中的节点或节点集,这些表达式类似于文件系统的路径,但针对的是XML文档...

Global site tag (gtag.js) - Google Analytics