XPath / Schematron相当于“xsl:value-of”

时间:2013-12-06 09:30:31

标签: xslt xpath sequence schematron

我构建了一个schematron模式并发现了意外错误。

我试图将字符串(例如“Robinson 1983”)与xsl函数的输出进行比较。 我的功能就像这样

<xsl:value-of select="surname"/><xsl:text> </xsl:text><xsl:value-of select="year"/>

所以,在schematron中

test="'Robinson 1983' = ...function-call..."

返回“false”,因为函数的输出是由三个文本元素组成的序列。

我能够使用xslt

解决这个问题
<xsl:variable name="output"><xsl:value-of select="...function-call..."/></xsl:variable>

test="'Robinson 1983' = $output"

按预期回复“真实”。

但我想知道:如何在“纯粹的”Schematron / XPath中解决这个问题? 有没有相当于xsl:value-of?即将序列转换为字符串,摆脱其他内容。 我认为这是你想在XPath中做的最重要的事情之一,但我找不到解决方案。

1 个答案:

答案 0 :(得分:0)

我试图重新创建你的例子,但它对我来说非常合适,就像你先编码一样。

我怀疑使用你的第一个select语句的函数:

<xsl:value-of select="surname"/><xsl:text> </xsl:text><xsl:value-of select="year"/>

将这些组合值作为单个字符串返回,但您的数据实际上可能包含多组(姓氏年份)字符串。

您的数据可能包含多组(姓氏年份)字符串吗?也许你的功能无意中一次返回的更多。