比较某个节点后的文本和节点

时间:2017-05-04 11:25:11

标签: xslt-2.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>

我位于最后一个换行符(lb),想要知道是否有更多文本跟随签名。我毫无结果地尝试了像

这样的事情
//substring-after(parent::closer, lb[last()]) = signed

但它没有用。我该如何正确地测试呢?

1 个答案:

答案 0 :(得分:1)

您可以使用following-sibling::node()[not(self::signed)]选择不是lb元素的上下文节点(您称之为signed元素)后面的任何节点。在像<xsl:if test="following-sibling::node()[not(self::signed)]">这样的布尔上下文中,只有当这样的节点存在时才会计算为真。