0

这里我们在 XSLT 级别使用双引号;XPath 函数级别的单引号,但是当我们需要在 XPath 函数中嵌入 XPath 表达式时,我们如何引用它?

 <xsl:value-of select="document('price-list.xml','/im_prices/row/UPC_Code[text()='abc']"/>
                                                                                 ^^^^^

(向右滚动)

4

2 回答 2

1

不确定,我一直使用以下节点集形式:

<xsl:value-of select="document('price-list.xml')/im_prices/row/UPC_Code[text()='abc']"/>

但这可能是特定于供应商的(但是,从来不知道它不起作用!)

于 2012-06-18T09:27:05.840 回答
0

document() 的第二个参数是一个节点集,而不是一个字符串,所以应该不会出现问题。但是,当然还有其他可能出现的情况。

在 XSLT 2.0 中:

  • 如果要在字符串中包含属性分隔符,请将其转义为&quot;&apos;

  • 如果要在字符串中包含字符串分隔符,请将其加倍为 '' 或 ""。

在 XSLT 1.0 中,第二个选项不可用。你也可以绕过它

(a) 通过交换用于属性分隔符和字符串分隔符的字符

(b) 通过使用 concat() 构建字符串

于 2012-06-18T12:08:05.197 回答