代码之家  ›  专栏  ›  技术社区  ›  AnchovyLegend

XML XPath-仅在满足子条件时选择父文本

  •  3
  • AnchovyLegend  · 技术社区  · 8 年前

    我正在处理一个项目,这个项目需要从父元素获取文本,而不需要从死者那里获取文本,只有在子元素中存在标题属性的情况下。

    在下面的示例中,我需要从 li 元素,如果且仅当子锚点中存在标题属性时( li/i/a/@title )是否可能?提前谢谢

    这是我最初尝试的,但这对我的用例不起作用… //ul/li/text()[last()] ,也尝试过 //ul/li/text()

    <ul>
      <li>
          <i>
            <a href="#apples" title="apples">
              Apples
            </a>
          </i> (1999)
      </li>
    </ul>
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   kjhughes    8 年前

    这个XPath,

    //li[.//a/@title]/text()[last()]
    

    将返回它们的最后一个子文本节点 li 具有后代的元素 a 有一个 @title 属性:

    (1999)
    

    按要求。

    信用卡 :简化 [.//a[@title]] [.//a/@title] 根据有用的建议 Allan .