次のXMLを検討してください--
<div id="test">
<p> Text sihdfaif</p>
<p />
<p> Text sihdfaif</p>
<p />
<p> Text sihdfaif</p>
<p> Text sihdfaif</p>
<p> Text sihdfaif</p>
</div>
ここで、テキストが含まれているp要素の数を取得したいと思います。この場合、その値= 5(空の2つの'p'要素があります)
これは私が思いついたXQueryです-
let $claims_main := $doc//div[@id="test"]
let $claims := $doc//div[@id="test"]/p
let $n := count($claims)
where $claims_main/p != ''
return $n
ただし、上記から得られる結果は7です。つまり、空の'p'要素が含まれています。
私が考えた別の方法は、すべての「p」要素に対してforループを使用することですが、その場合、ループの要素の総数を取得するにはどうすればよいですか?その場合にcountを使用すると、単に[1,1,1,1,1]-を取得します。各p要素のカウント(forループでは、カウントはdiv自体ではなく、「p」要素のそれぞれに対して行われるため)。..