2017-05-04 100 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)]">这样的布尔上下文中,只有在存在这样的节点时才会计算为真。