使用XSLT使XML(例如<;price>;10000<;/price>;)显示为10000?

使用XSLT使XML(例如<;price>;10000<;/price>;)显示为10000?,xml,xslt,Xml,Xslt,一个简单的问题,我想知道是否可以做到。尝试使用element和format-number()函数。尝试使用element和format-number()函数。您可以使用format-number函数做到这一点: <xsl:value-of select='format-number(/price/text(), "###,###")'/> 有关完整的参考信息,请参阅。您可以使用格式编号功能执行此操作: <xsl:value-of select='format-number

一个简单的问题,我想知道是否可以做到。

尝试使用element和format-number()函数。

尝试使用element和format-number()函数。

您可以使用format-number函数做到这一点:

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


有关完整的参考信息,请参阅。

您可以使用格式编号功能执行此操作:

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


有关完整的参考资料,请参阅。

很棒,但什么是text()?我也读了w3schools的东西,你认为“####,####”适用于任何价格吗?如果我有
1000000000000000
它会工作吗?或者我需要更多吗?请不要参考w3schools。使用/text()通常是不好的做法。在任何XSLT处理器中都不需要它。事实上,由于在XQuery规范定稿之前编写的查询教程,这是一个最近逐渐形成的坏习惯。只有当元素(本例中为price)包含子元素和文本节点并且需要将它们分开时才需要它。XSLT 1.0规范中没有很好地定义使用######格式化值10000000000时会发生什么(这是指JDK1.1规范,这几乎是不可能实现的,但如果您设法获得一份拷贝,就会留下许多问题没有答案).但是XSLT 2.0明确指出,该值输出为100000000,000@kork:我认为引用并不一定是错误的。引用w3schools是错误的,因为它是受版权保护的。作为一个信息源,它是非常不清楚和不准确的…而且因为XPath/XSLT是由它们自己的规范标准化的,所以我们倾向于引用它。这是一个sp特殊情况是因为规范本身引用了JDK1.1…太棒了,但是什么是text()?我也读了w3schools的东西,“####,####”是否适用于任何价格值?比如说如果我有
1000000000000000
它会工作吗?或者我需要更多吗?请不要引用w3schools。使用/text()通常是不好的做法。在任何XSLT处理器中都不需要它。事实上,这是最近逐渐形成的一个坏习惯,这是在XQuery规范最终确定之前编写的查询教程的结果。只有在元素(本例中为价格)为包含子元素以及文本节点,您需要将它们分开。XSLT 1.0规范中没有很好地定义如果您尝试使用#######格式化值10000000000会发生什么情况(这是指JDK1.1规范,这几乎是不可能实现的,但如果您设法获得一份拷贝,就会留下许多问题没有答案).但是XSLT 2.0明确指出,该值输出为100000000,000@kork:我认为引用并不一定是错误的。引用w3schools是错误的,因为它是受版权保护的。作为一个信息源,它是非常不清楚和不准确的…而且因为XPath/XSLT是由它们自己的规范标准化的,所以我们倾向于引用它。这是一个sp特殊情况下,因为规范本身引用JDK 1.1…+1这是正确定义的格式编号机制。+1这是正确定义的格式编号机制。请注意,接受的答案并不完全。“格式模式”XSLT函数的参数遵循
xsl:decimal format
声明。请注意,已接受的答案并不完全。XSLT函数的“format pattern”参数遵循
xsl:decimal format
声明。