使用 XPath,如何根据节点的文本内容和属性值选择节点?

2023-11-30

给定这个 XML:

<DocText>
<WithQuads>
    <Page pageNumber="3">
        <Word>
            July
            <Quad>
                <P1 X="84" Y="711.25" />
                <P2 X="102.062" Y="711.25" />
                <P3 X="102.062" Y="723.658" />
                <P4 X="84.0" Y="723.658" />
            </Quad>
        </Word>
        <Word>
        </Word>
        <Word>
            30,
            <Quad>
                <P1 X="104.812" Y="711.25" />
                <P2 X="118.562" Y="711.25" />
                <P3 X="118.562" Y="723.658" />
                <P4 X="104.812" Y="723.658" />
            </Quad>
        </Word>
    </Page>
</WithQuads>

我想找到文本为“July”且 Quad/P1/X 属性大于 90 的节点。因此,在这种情况下,它不应返回任何匹配项。但是,如果我使用 GT (>) 或 LT (

So:

//Word[text()='July' and //P1[@X < 90]]

将返回 true,同样

//Word[text()='July' and //P1[@X > 90]]

如何在 P1@X 属性上正确限制这一点?

此外,假设我有多个 Page 元素,用于不同的页码。我将如何另外限制上述搜索以查找具有以下内容的节点text()='July', P1@X < 90,和页@pageNumber=3?


一般来说,我认为在 XPath 中使用无前缀 // 是一种坏味道。

尝试这个:-

/DocText/WithQuads/Page/Word[text()='July' and Quad/P1/@X > 90]

你的问题是你使用//P1[@X < 90]它从文档的开头开始并开始寻找任何P1因此它永远是真的。相似地//P1[@X > 90]总是正确的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 XPath,如何根据节点的文本内容和属性值选择节点? 的相关文章

  • 用于从链接中选择文本的 xpath 表达式

    我有这样的html文件内容 a class bf title Link to book href book 229920 book name a 帮我构造 xpath 表达式来获取链接文本 书名 我尝试使用 a 但表达式计算时没有结果 如果
  • C# 的 xml 序列化中是否有一个属性可以跳过空数组?

    C 的 xml 序列化中是否有一个属性可以跳过空数组 这将提高 xml 输出的可读性 好吧 你也许可以添加一个ShouldSerializeFoo method using System using System ComponentMode
  • xpath 根据子值选择父级

    我希望选择状态为 实时 的每个活动 我在 Drupal 的 XPath XML 解析器中使用它 并具有上下文基本查询和 xpath 查询字段 上下文 这是基本查询 所有其他查询都将在此上下文中运行 我目前有 语境 event status
  • SimpleXML:使用包含命名空间的 XML

    我正在尝试从 google picasa API 获取地理信息 这是原始 XML
  • 如何防止 .NET 中的 XPath/XML 注入

    如何防止 NET Framework 中的 XPATH 注入 我们之前使用字符串连接来构建 XPATH 语句 但发现最终用户可以执行一些任意 XPATH 例如 string queryValue pages url USER INPUT V
  • Android:非键盘输入法

    我正在尝试为 Android 创建一个不是传统键盘 对应于不同字母的按键行 的 IME 并且我无法找到有关如何执行此操作的有用资源 因为 SDK 中的所有代码示例都使用键盘 API它是内置函数 我在 XML 文件中设计了 IME 界面 就好
  • XDocument 似乎不存在于 System.Xml 命名空间中

    我遇到了我认为可能是一个非常简单的问题 在开发我的第一个 WP7 应用程序时 我已经进入了访问我的站点 api 并解析 XML 的阶段 但是我在尝试使用 XDocument 时遇到了困难 我四处搜索并找到了这个示例代码 将 XML 文件从网
  • Python 不擅长 XML 吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从“健康”元素中提取文本

    我花了几个小时试图找到在硒中使用该游戏的 HP 值的正确链接 为了检查您自己 我将提供如下用户名和密码 网站 https s3 en bitefight gameforge com user login https s3 en bitefi
  • 将 cXML 反序列化为 C# 类

    我正在尝试将 cXML 字符串反序列化为 C 类 但是 在反序列化时 除了根元素之外 我似乎无法获得任何东西来反序列化 如何反序列化 XML 文档 https stackoverflow com questions 364253 how t
  • 带单引号的 XPATH 查询[重复]

    这个问题在这里已经有答案了 有人知道如何解决这个问题吗 单引号让我陷入困境 nodes xml gt xpath item contains catalog Billy s Blogs title 我尝试以各种方式逃避它 但都抛出错误 no
  • 如何使用 python 在 XML 声明后添加注释

    import xml etree ElementTree as ET def addCommentInXml fileXml C Users Documents config xml tree ET parse fileXml root t
  • Python:将 xml 文件转换为图像

    我希望使用 python 脚本将 xml 文件转换为图像 最好是 png 文件 我没有从我的在线研究中找到太多信息 我正在尝试使用 PIL 从这个帖子 https stackoverflow com questions 5741803 co
  • XPath:dot和text()之间的区别

    我的问题是关于使用点和的细节text in XPath 例如 以下find element行返回相同的元素 driver get http stackoverflow com driver find element by xpath a t
  • 即使使用 标记,XSL 也会忽略我的空格

    我在 XSL 代码中创建一个标头 其中包含多个信息字段 即 姓名 Bob 出生日期 1900 年 1 月 1 日 等 我将它们包含在标签中 如下所示
  • 膨胀类 android.support.design.widget.NavigationView 时出错

    我按照 NavigationView 的教程进行操作 但无法解决此错误消息 Error inflating class android support design widget NavigationView 教程链接 https www
  • 如何让android BottomAppBar圆角化

    我正在使用BottomAppBar来自谷歌这样的
  • 将 XML 从网站解析到 Android 设备

    我正在启动一个 Android 应用程序 它将解析来自网络的 XML 我创建了一些 Android 应用程序 但它们从未涉及解析 XML 我想知道是否有人对最佳方法有任何建议 这是一个例子 try URL url new URL your
  • Java XML 解析器添加不必要的 xmlns 和 xml:space 属性

    我在 Windows 10 上使用 Java 11 AdoptOpenJDK 11 0 5 2019 10 15 我正在解析一些旧版 XHTML 1 1 文件 这些文件采用以下一般形式
  • XML 和 XSLT:需要它仅对某些子节点进行排序

    我需要让 XSLT 样式表对 XML 文件的子节点进行排序 但仅限某些子节点 下面是 XML 的示例

随机推荐