在XPath选择中包括封闭标签

011

例如,我有以下xml片段

<rootnode>
    <level1 num="1">
        <level2 num="1">1.1</level2>
        <level2 num="2">1.2</level2>
        <level2 num="3">1.3</level2>
    </level1>
    <level1 num="2">
        <level2 num="1">2.1</level2>
        <level2 num="2">2.2</level2>
        <level2 num="3">2.3</level2>
        <level2 num="4">2.4</level2>
        <level2 num="5">2.5</level2>
    </level1>
    <level1 num="3">
        <level2 num="1">3.1</level2>
        <level2 num="2">3.2</level2>
        <level2 num="3">3.3</level2>
        <level2 num="4">3.4</level2>
    </level1>
</rootnode>

我想选择与祖先一起拥有的level2节点@num>3,即获得

<rootnode>
    <level1 num="2">
        <level2 num="4">2.4</level2>
        <level2 num="5">2.5</level2>
    </level1>
    <level1 num="3">
        <level2 num="4">3.4</level2>
    </level1>
</rootnode>

表达式//level1/level2[@num>3]产生

<level2 num="4">2.4</level2>
<level2 num="5">2.5</level2>
<level2 num="4">3.4</level2>

//level1/level2[@num>3]/ancestor::*产生所有祖先及其内容:

<rootnode>
  <level1 num="1">
    <level2 num="1">1.1</level2>
    <level2 num="2">1.2</level2>
    <level2 num="3">1.3</level2>
  </level1>
<!-- ... 25 lines cut -->

我了解这两种表达方式的工作原理,以及为什么它们不符合我的需求。什么是实现无XSLT预期结果的最简单的方法?

该示例非常简单,通常选定的节点可以任意放置在较深的位置,并且解决方案应按比例缩放

伊恩·罗伯茨(Ian Roberts)

您不能使用纯XPath来做到这一点,因为XPath是一种用于从XML树中选择现有节点的语言,而您想要构建与原始树不同的全新树。要构建这样的新树,您需要使用通用编程语言中的高级工具(例如XSLT或XQuery)或合适的XML操作库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在XPath选择中包括属性

来自分类Dev

在Python的Xpath中的标签之间选择文本

来自分类Dev

在Python的Xpath中的标签之间选择文本

来自分类Dev

如何使用Scapy的XPath选择所有子文本,但不包括标签?

来自分类Dev

如何在Selenium的XPath选择器中选择所有子文本,但不包括标签?

来自分类Dev

如何在Selenium的XPath选择器中选择所有子文本,但不包括标签?

来自分类Dev

在C#中从xml读取封闭的标签

来自分类Dev

如何通过xpath选择标签

来自分类Dev

如何扩展选择以包括周围的链接标签?

来自分类Dev

如何使用jquery从表中获取所有数据,包括输入和选择标签值?

来自分类Dev

MySQL-通过“标签”进行选择,包括所有标签

来自分类Dev

在选择的ngOptions中包括ngShow

来自分类Dev

替换nodejs中未自封闭的br或img标签

来自分类Dev

如何根据XPATH的关系位置选择标签?

来自分类Dev

Xpath选择选定的标签名称

来自分类Dev

使用 xpath 选择包含标签的文本

来自分类Dev

解析未封闭的}标签

来自分类Dev

从选择中删除标签

来自分类Dev

如何扩展选择以在Sublime Text 3中包含封闭元素?

来自分类Dev

在xpath中选择评论的所有同级(包括文本)

来自分类Dev

在xpath中选择评论的所有同级(包括文本)

来自分类Dev

CSS *选择器,但不包括特定标签

来自分类Dev

在选择中包括重复行中的列

来自分类Dev

jQuery:如何在两个封闭的html标签之间选择文本

来自分类Dev

具有特定后代标签的标签的XPath选择器选择其他标签

来自分类Dev

在选择选项中包括显示

来自分类Dev

分组并选择未包括在汇总中的列

来自分类Dev

XPath中的不同*选择策略

来自分类Dev

无效标签封闭包装问题

Related 相关文章

热门标签

归档