【问题标题】:How to find each first descendant element using xpath?如何使用 xpath 查找每个第一个后代元素?
【发布时间】:2016-05-11 01:47:29
【问题描述】:

假设我有这个 XML:

<p>
    <a>
        <b>
            <jedi></jedi>
            <c>
                <jedi></jedi>
            </c>
        </b>
    </a>
    <a>
        <b>
            <jedi></jedi>
            <c>
                <jedi></jedi>
            </c>
        </b>
    </a>
</p>

并且我想选择&lt;a&gt; 下的每个第一个jedi 外观(2 个结果),无论&lt;a&gt; 下的xml 结构如何,我该怎么做?

当我尝试以下示例之一时,所有&lt;jedi&gt; 都返回了

  1. //a//jedi[1]
  2. //jedi[ancestor::a][1]

当我尝试使用下面的括号时,只返回第一个,而不是每个第一个。

  1. (//a//绝地)[1]

【问题讨论】:

标签: xpath


【解决方案1】:

试试//a/descendant::jedi[1]

例子:

# tee < x >(java -cp Saxon-HE-9.5.1-5.jar net.sf.saxon.Query -s:- -qs:'//a/descendant::jedi[1]')
<p>
  <a>
    <b>
      <jedi>1</jedi>
      <c>
        <jedi>2</jedi>
      </c>
    </b>
  </a>
  <a>
    <b>
      <jedi>3</jedi>
      <c>
        <jedi>4</jedi>
      </c>
    </b>
  </a>
</p>
# <?xml version="1.0" encoding="UTF-8"?><jedi>1</jedi><jedi>3</jedi>

【讨论】:

    猜你喜欢
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2012-06-11
    • 1970-01-01
    • 2019-07-25
    • 2022-12-03
    • 1970-01-01
    相关资源
    最近更新 更多