【问题标题】:Convert XML into another XML using XSLT(number conversion)使用 XSLT(数字转换)将 XML 转换为另一个 XML
【发布时间】:2016-09-22 04:43:39
【问题描述】:

我正在尝试使用 XSLT 将 XML 转换为另一个 XML。 这是我的输入 XML:

...
<size>21467</size>
....

我想将此输入 XML 转换为如下所示的输出 XML:

...
<HAS>
<C SZ="21k"/>
</HAS>
...

我的 XSLT 代码:

...
<HAS>
<C>
<xsl:attribute name="SZ" select="xs:string(xs:anyURI(fn:string($var1_resultof_first/size)))" />
</C>
</HAS>
..

我不确定如何将大小“21467”转换为“21k”。任何帮助将不胜感激

【问题讨论】:

  • 一个例子不足以表达一个规则。给定的值是否总是大于 1,000?如果不是,那应该是什么结果?
  • 我已经有一个适用于所有元素的模板
  • "我不能使用两个模板。" 您可以根据需要使用尽可能多的模板。无论如何,这不是这里的重要部分。 format-number($input div 1000, '0k') 是。随意使用它。
  • 请检查我的问题的编辑部分。我已经添加了我原来的 XSLT
  • 我认为你有足够的能力自己解决这个问题。下次,发布minimal reproducible example,包括输入和预期输出。

标签: xml xslt


【解决方案1】:

以下模板:

<xsl:template match="size">
    <HAS>
        <C SZ="{format-number(. div 1000, '0k')}"/>
    </HAS>
</xsl:template>

应用于您的输入示例,将返回:

<HAS>
   <C SZ="21k"/>
</HAS>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    相关资源
    最近更新 更多