2017-05-04 20 views
0

文字のより詳細な文章の特定の部分に対処する方法を見つけようとします。このXMLファイル特定のノードの後に​​テキストとノードを比較します

<?xml version="1.0" encoding="UTF-8"?> 
<a> 
    <closer>regards<lb/><signed>William</signed></closer> 
    <closer>until next tuesday<lb/>regards<lb/><signed>William</signed></closer> 
    <closer>until next tuesday<lb/>regards <signed>William</signed></closer> 
</a> 

で、私は最後の改行(ポンド)に位置し、ちょうど署名よりも、次の多くのテキストがあるかどうかを知りたいのです。私はうまくいけなかったようなことを試みた

//substring-after(parent::closer, lb[last()]) = signed 

しかし、それはうまくいきませんでした。それを正しくテストするにはどうすればいいですか?

答えて

1

following-sibling::node()[not(self::signed)]を使用すると、要素ではないコンテキストノード(lb要素)に続くノードを選択できます。ブール値の文脈では<xsl:if test="following-sibling::node()[not(self::signed)]">のようになり、そのようなノードが存在する場合にのみ真と評価されます。

関連する問題