1

我使用 libxmljs 来解析一些 html。

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

例子

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

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

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

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

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

谢谢你的帮助...

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

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

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

1 回答 1

1

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

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

于 2012-11-15T15:25:36.017 回答