【问题标题】:XPath search using operators使用运算符的 XPath 搜索
【发布时间】:2024-01-16 22:57:01
【问题描述】:

您好,我有以下代码搜索并检索<h3> 之后的第一段

//div[starts-with(@id,'content_div')]/h3[.='Course Content']/following-sibling::p[1]

因为我在多个网页上使用相同的代码,所以其中一些网页不包含<h3>,而是包含<h4> 标记。检查是否有<h3> 标记以及如果没有检查<h4> 的语法是什么?

【问题讨论】:

  • 你的意思是:检查子元素是否存在?
  • “其中一些页面不包含....”什么?
  • “课程内容”使用

    标签编写。如果第一个标签不存在,我想知道如何检查'either'。

标签: objective-c parsing ios4 xpath xml-parsing


【解决方案1】:

如果您使用的是 XPath 2.0,则可以将 h3 替换为 (h3|h4)

在 XPath 1.0 中,您需要将其替换为 *[self::h3 or self::h4]

【讨论】:

    【解决方案2】:

    您可以使用谓词检查子元素是否存在,例如:

    //div[span]
    

    它将选择所有具有spandiv 元素

    //div[starts-with(@id,'content_div')]/*[self::h3 or self::h4 and .='Course Content']/following-sibling::p[1]
    

    【讨论】: