我的文字有撇号符号
示例我尝试测试这个带有符号的xml然后我该如何比较?
<xsl:for each select="country[nation='India's]">
这是显示错误的声明
此致 Nanda.A
答案 0 :(得分:10)
一种方法是:
<xsl:variable name="apos" select='"'"'/>
<!-- ... later ... -->
<xsl:for-each select="country[nation=concat('India', $apos, 's')]">
这里的问题有两个:
'India\'s'
不是一个选项。这些是:
构造如:
<xsl:for-each select="country[nation='India's']">
<xsl:for-each select="country[nation='India's']">
传递XML层但违反了XSLT层,因为在这两种情况下,有效属性值(存储在DOM中)都是country[nation='India's']
,这显然是一个XPath语法错误。
构造如:
<xsl:for-each select="country[nation=concat('India', "'", 's')]">
<xsl:for-each select="country[nation=concat("India", "'", "s")]">
明显违反了XML层。 但是它们不会违反XSLT层(!),因为它们的实际值(如果XSLT文档可以在第一时间解析,)将显示为{{1这是完全合法的XPath表达式。
所以你必须找到一种方法来通过第1层和第2层。一种方法是如上所示的可变方式。另一种方式是:
country[nation=concat('India', "'", 's')]
在XSLT中显示为<xsl:for-each select="country[nation=concat('India', "'", 's')]">
。
就个人而言,我发现“变量方式”更容易使用。