XPath 选择全部,但不选择 self::strong 和 self::strong/following-sibling::text()

2024-01-17

所以我有以下示例 html 需要解析。

<div>
    <strong>Title:</strong>
    Sub Editor at NEWS ABC

    <strong>Name:</strong>
    John

    <strong>Where:</strong>
    Everywhere

    <strong>When:</strong>
    Anytime

    <strong>Everything can go down there..</strong>

    Lorem Ipsum blah blah blah....
</div>

我想提取整个 div,但我不希望 Title 和Where 和 When 标题带有以下值。

到目前为止我已经测试了以下 XPath。

a) 没有以下兄弟姐妹(1:不工作。2:工作)

1. //div/node()[not(strong[contains(text(), "Title")])]

2. //div/node()[not(self::strong and contains(text(), "Title"))]

a) 与以下兄弟姐妹(1:不工作。2:不工作)

1. //div/node()[not(strong[contains(text(), "Title")]) and not(strong[contains(text(), "Title")]/following-sibling::text())]

2. //div/node()[not(self::strong and contains(text(), "Title") and following-sibling::text())]

如何实现我所追求的目标?


我认为以下内容符合您想要做的事情 - 它排除了包含标题的强元素及其后面的文本节点。您可以将其扩展以包含您想要排除的其他重要元素:

//div/node()[not(self::strong and contains(text(), "Title") or preceding-sibling::strong[1][contains(text(), "Title")])]

强节点被跳过:

not(self::strong and contains(text(), "Title")

以下文本被跳过:

preceding-sibling::strong[1][contains(text(), "Title")]

请注意,文本节点需要检查其最近的前同级(而不是其后同级)。

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

XPath 选择全部,但不选择 self::strong 和 self::strong/following-sibling::text() 的相关文章

随机推荐

  • 如何在 pandas DataFrame 中允许重复的列名

    我有一个数据框 我想更新该数据框的列名称 列名有重复的条目 下面的代码给出错误 无法从重复的轴重新索引 list alpha beta gamma alpha df pd DataFrame datframe columns list No
  • Spotify 最新更新:Autohotkeys 脚本损坏

    我曾经使用 AutoHotKey 脚本作为 Spotify 快捷方式 内置快捷方式有限 只有在应用程序处于焦点状态时才有效 我通常在工作时将其保留在后台 不管怎样 它之前已经更新了一百万次了 没有任何问题 但是我下载了最新的 Spotify
  • AVAssetExportSession 卡住(未启动)导出

    我尝试从照片库导出视频 但导出回调从未执行 我定期检查导出进度 进度始终为零 下面的代码在 99 9 的情况下都有效 但有时在某些设备上 绝对随机 它会停止工作 只有重新启动 iPhone 才有帮助 AVAssetExportSession
  • 为什么这封邮件会直接进入垃圾邮件箱?

    我正在使用以下脚本发送邮件 但这总是最终进入垃圾邮件文件夹 为什么 您在发送邮件时必须使用标头 以证明邮件是来自真实来源而不是机器人 尝试这个
  • 使用 CQRS 在 DDD 中进行命令验证

    我正在学习 DDD 并利用 CQRS 模式 我不明白如何在不从数据存储中读取的情况下验证命令处理程序中的业务规则 例如 克里斯想给阿什利一件礼物 该命令可能是 GiveGiftCommand 我什么时候才能验证克里斯确实拥有他想要赠送的礼物
  • PHP 购物车中买一送半价总计

    我正在用 PHP 创建一个购物车 其中一个特定的商品是买一送一半价 当用户购买该商品时 我希望从总数中扣除报价 但我坚持如何从数学上做到这一点 到目前为止 我在 if 循环中从数据库获取数据有类似的内容 total total arrayc
  • 内嵌显示单选按钮列表

    我的页面上有一些广播列表 我面临的问题是单选按钮的文本没有显示在单选按钮的内联中 我已将重复布局放入表和流中 但两者都不起作用 我尝试添加一种显示样式 内联 但这也不起作用 尽管它在复选框上起作用 并且我认为也许它在这里也起作用 这只是一个
  • 增强 Jquery 拖放演示

    我有一个非常匹配的要求这个 Jquery 演示 http jqueryui com demos droppable shopping cart 这是一个简单的购物车演示 基本上我需要对该演示进行两项增强 我需要文本输入以及可用的 产品 因此
  • BizTalk 内部和外部架构

    我在网上读到 您将 外部模式 与 内部模 式 分开 并且永远不要将 内部模式 暴露给任何外部参与者 如果我的解决方案仅充当消息总线来在两个现有系统之间创建松散耦合 我真的需要任何内部模式吗 System A makes a Request
  • 无法验证 Google 访问令牌(段数错误)

    我有非常简单的代码直接来自 Google 网站 https developers google com identity sign in web backend auth using a google api client library
  • 将执行动态查询的结果插入表中

    我有一个动态查询 strQuery执行时会产生包含很多列的结果 我想将此动态查询的结果插入到临时表中 我这样做是因为我想对临时表执行一些过滤并获得所需的结果 之前的帖子也问过类似的问题HERE https stackoverflow com
  • FileSystemWatcher 一段时间后停止引发事件

    我们构建了一个窗口服务来监听文件夹FileSystemWatcher 创建后我们处理文件等等 但几天后该活动停止工作 它有可能被垃圾收集器 GC 收集吗 GC 是否收集它的持有类 这是一个单例 我应该使用弱事件吗 我是否存在导致事件未注册的
  • 如何检测grails中渲染了哪个视图文件

    我必须知道grails 渲染时的视图文件 一种方法是过滤器中的 grails afterView 操作 在这里 我找不到一种方法来知道哪个视图文件已被渲染 那么 有没有什么方法可以让我知道哪个视图文件已被渲染方法渲染 这不太漂亮 但在大多数
  • 从 Word 中提取嵌入的 Excel 工作表数据

    我有一批嵌入了 Excel 工作表的 Word 文档 用户通过双击工作表图像并打开嵌入的 Excel 对象在 Excel 工作表中输入数据 我需要获取用户输入的数据 下面是 WORD VBA 其中引用了 Microsoft Excel 15
  • 预编译方面的语句与准备语句

    我理解使用Statement和PreparedStatement之间的主要区别 PreparedStatements允许传入参数 但我读到了两者之间的细微差别 即PreparedStatement 可以比通用语句更快 因为PreparedS
  • 使用对象的浅拷贝时出现双重释放错误...如何修复?

    如何从浅复制对象与原始对象中删除双重 删除 错误 一个简单的例子 class INT int p dynamic define here fancy constructors etc set int i p new int p i INT
  • 基于 WPF 和 MVVM 模式中的嵌套模型实体构建 ViewModel

    我在理解如何基于以下模型构建视图模型时遇到问题 我简化了模型以便更清晰 public class Hit public bool On get set public Track Track get set public class Trac
  • 使用 docker link 时拒绝连接到 RabbitMQ

    我有一个微服务应用程序 它有两个服务和一个用作它们之间通信的消息队列的rabbit mq 现在 我想将它们部署在docker上 我在以下代码中docker compose yml file 版本 3 服务 rabbitmq build Ra
  • 将自定义格式化程序类与 Python 的logging.config 模块结合使用

    我有以下日志记录类 当在代码中指定为格式化程序时 它可以正常工作 它通过在要记录的消息的开头添加一个字符串来扩展现有的格式化程序 以帮助显示消息的重要性 我不只是使用 levelname s在格式字符串中 因为我不想显示 DEBUG 或 I
  • XPath 选择全部,但不选择 self::strong 和 self::strong/following-sibling::text()

    所以我有以下示例 html 需要解析 div strong Title strong Sub Editor at NEWS ABC strong Name strong John strong Where strong Everywhere