Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt xsl中的撇号:格式编号_Xslt_Xpath_Format - Fatal编程技术网

Xslt xsl中的撇号:格式编号

Xslt xsl中的撇号:格式编号,xslt,xpath,format,Xslt,Xpath,Format,我用xslt解析xml,并将结果作为xml 我需要用撇号作为分隔符来设置数字的格式,如tousand、million等 例:1234567=1'234'567 现在的问题是,我怎么把这些撇号放进去 <xsl:value-of select="format-number(/path/to/number, '###'###'###'###')" /> 这不起作用,因为撇号本身已经在分隔格式的开头 有没有一个简单的解决方案(可能像c#中那样避开撇号?答案取决于您使用的是1.0还是2.

我用xslt解析xml,并将结果作为xml

我需要用撇号作为分隔符来设置数字的格式,如tousand、million等

例:1234567=1'234'567

现在的问题是,我怎么把这些撇号放进去

<xsl:value-of select="format-number(/path/to/number, '###'###'###'###')" />

这不起作用,因为撇号本身已经在分隔格式的开头


有没有一个简单的解决方案(可能像c#中那样避开撇号?

答案取决于您使用的是1.0还是2.0

在2.0中,您可以通过将字符串分隔符加倍(例如“it's dark”)来转义字符串分隔符,也可以使用XML实体(如
)来转义属性分隔符。因此,您可以编写:

<xsl:value-of select="format-number(/path/to/number, '###''###''###''###')" />

在1.0中,您可以使用XML实体转义属性分隔符,但无法转义字符串分隔符。因此,您可以切换分隔符并使用

<xsl:value-of select='format-number(/path/to/number, "###&apos;###&apos;###&apos;###")' />

另一种可能更简单的方法是将字符串放入变量中:

<xsl:variable name="picture">###'###'###'###</xsl:variable>
<xsl:value-of select="format-number(/path/to/number, $picture)" />
##############

经过一些研究,我们提出了以下解决方案:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:decimal-format name='ch' grouping-separator="'" />
     <xsl:template match="/">
     <xsl:value-of select='format-number(/the/path/of/the/number, "###&apos;###&apos;###", "ch")'/>
     ...

...

谢谢,但是什么都没用……但是我发布了我们发现的解决方案,说“什么都没用”是非常没有建设性的,这意味着我的任何解决方案都不起作用。如果它们不起作用,则可能是您错误地实现了它们,或者是您使用了有缺陷的处理器。阅读此文章的人会想知道是哪个。请说明您做了什么,以及出现了什么错误。好的,我在该网站上重试了您的所有解决方案:。仍然没有解决方案起作用。我收到了错误消息“错误:格式编号图片:被动字符不能出现在子图片中的活动字符之间。”。这表明您没有xsl:decimal格式声明。很抱歉,我忘了提到这一点-我有点认为您已经解决了这一部分。