如何使用xpath查找每个第一个子元素?

如何使用xpath查找每个第一个子元素?,xpath,Xpath,假设我有这个XML: <p> <a> <b> <jedi></jedi> <c> <jedi></jedi> </c> </b> </a> <a> <b>

假设我有这个XML:

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

我想在
(2个结果)下选择每个第一个
jedi
外观,不管
下的xml结构如何,我该怎么做

当我尝试下面的一个示例时,所有的
都返回了

  • //a//jedi[1]
  • //绝地[祖先::a][1]
  • 当我尝试使用下面的括号时,只返回第一个括号,而不是每个括号

  • (//绝地武士)[1]

  • 试试看
    //a/genderant::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>
    
    #tee(java-cp-Saxon-HE-9.5.1-5.jar-net.sf.Saxon.Query-s:--qs:“//a/genderant::jedi[1]”)
    
    1.
    2.
    3.
    4.
    

    # 13