我的文字有撇号符号有问题
例如我尝试测试这个带有符号的xml然后我该如何比较?
<xsl:for each select="country[nation='India's]">
Run Code Online (Sandbox Code Playgroud)
这是显示错误的陈述
关心Nanda.A
Tom*_*lak 10
一种方法是:
<xsl:variable name="apos" select='"'"'/>
<!-- ... later ... -->
<xsl:for-each select="country[nation=concat('India', $apos, 's')]">
Run Code Online (Sandbox Code Playgroud)
这里的问题有两个:
'India\'s'
不是一个选择.这些是:
构造如:
<xsl:for-each select="country[nation='India's']">
<xsl:for-each select="country[nation='India's']">
Run Code Online (Sandbox Code Playgroud)
传递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")]">
Run Code Online (Sandbox Code Playgroud)
显然违反了XML层.但是它们不会违反XSLT层(!),因为它们的实际值(如果XSLT文档可以在第一时间被解析)将会出现country[nation=concat('India', "'", 's')]
,这与XPath表达式完全合法.
所以你必须找到一种方法来通过第1层和第2层.一种方法是如上所示的可变方式.另一种方式是:
<xsl:for-each select="country[nation=concat('India', "'", 's')]">
Run Code Online (Sandbox Code Playgroud)
这对XSLT来说似乎是country[nation=concat('India', "'", 's')]
.
就个人而言,我发现"变量方式"更容易使用.