2017-05-04 44 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)]來選擇不屬於signed元素的上下文節點(您稱其爲lb元素)之後的任何節點。在像<xsl:if test="following-sibling::node()[not(self::signed)]">這樣的布爾上下文中,只有在存在這樣的節點時纔會計算爲真。