假设我有这个XML:
<p>
<a>
<b>
<jedi></jedi>
<c>
<jedi></jedi>
</c>
</b>
</a>
<a>
<b>
<jedi></jedi>
<c>
<jedi></jedi>
</c>
</b>
</a>
</p>
并且我想在jedi
(2个结果)下选择每个第一个<a>
外观,无论<a>
下面的xml结构如何,我该怎么做?
当我尝试以下其中一个示例时,所有<jedi>
都返回了
//a//jedi[1]
//jedi[ancestor::a][1]
当我尝试使用下面的括号时,只返回第一个,而不是每个第一个。
答案 0 :(得分:3)
尝试//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>