または他のタグ.<br />
に置き換えたい。.<p/>
そして、テキストやその他のタグを変更しないでおきたいです。例えば:
<div class="page">
<div class="text">
adsdfasdf<br/>sadasdsafg<br/>kkot.<br/>
<div class="pagenumber">3</div>
</div>
</div>
または他のタグ.<br />
に置き換えたい。.<p/>
そして、テキストやその他のタグを変更しないでおきたいです。例えば:
<div class="page">
<div class="text">
adsdfasdf<br/>sadasdsafg<br/>kkot.<br/>
<div class="pagenumber">3</div>
</div>
</div>
タイトルの質問を解決する (見つける) には、ドットで終わるすべてのテキスト ノードを見つけ、最初の次の兄弟を取得し (次の次のノードを探す場合は、次のようなノードも返します<div>foobar.</div><br/>
)、それがノードかどうかをテストし<br/>
ます (この場合、名前のみをテストします。ここでは空であることを確認していません)。
//text()[ends-with(., '.')]/following-sibling::node()[1]/self::br
ノードの名前を変更する - 質問の本文で要求したもの - 次のように機能します。
rename node //text()[ends-with(., '.')]/following-sibling::node()[1]/self::br as 'p'
もちろん、名前の変更には XQuery Update が必要です。そのノードを見つけるだけで、任意の XQuery 1.0 および XPath 2.0 プロセッサでも機能します。