【问题标题】:Prefix the result of a XPATH query为 XPATH 查询的结果添加前缀
【发布时间】:2012-11-15 10:29:42
【问题描述】:

我使用 libxmljs 来解析一些 html。

我有一个 xpath 查询,它有一个“或”连词,基本上可以检索两个查询的信息

例子

doc.find("//div[contains(@class,'important') or contains(@class,'overdue')]")

这将返回所有重要或过期的 div...

我可以在我的结果集中添加前缀或查看来自哪个条件的前缀吗?

结果可能是一个数组,其中第一个条件为 0,第二个条件为 1...这可能吗...

或者我怎样才能找出哪个结果来自哪个查询条件......

感谢您的帮助...

P.S.:这是一个元素序列的简化示例,这些元素要么有一个重要的项目,要么有一个过期的项目......两者都有,一个或一个都没有......所以我不能通过寻找每个第二个条目来......等等

这是我想要得到的结果……

message:{},
message:{
   .....
  important: "some immportant text",
  overdue: "overdue date,
  .....
}

【问题讨论】:

  • 那么为什么有两个单独的查询不是解决方案呢?

标签: xpath libxml2 libxml-js


【解决方案1】:

无法知道or XPath 查询的哪个子句导致包含特定结果。它根本不是保留的信息。

您要么需要对importantoverdue 执行完全独立的查询,要么执行一个大型查询以获取整个结果集(就像您现在一样),然后进一步测试每个结果的类以找出哪个就是一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 2021-10-10
    • 1970-01-01
    • 2012-01-02
    相关资源
    最近更新 更多