获取元素的值并使其成为 XSLT 中属性的值?

Posted

技术标签:

【中文标题】获取元素的值并使其成为 XSLT 中属性的值?【英文标题】:getting value of an element and make it the value of an attribute in XSLT? 【发布时间】:2021-10-23 09:57:34 【问题描述】:

我正在使用 xslt 将 xml 文件转换为结构不同的 xml 文件。 我想获取旧文件中元素的值,并将其作为新文件中属性的值。但是,代码在属性中不起作用。这是我想看到的:

来自

<cell n="1">1285</cell>

<date value="1285">1285<date>

我在 XSLT 中写了这个

<date when="<xsl:value-of select="t:cell[1]"/>"><xsl:value-of select="t:cell[1]"/></date>

但它在属性中不起作用。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

你可以使用这个模板:

<xsl:template match="cell">
  <date>
    <xsl:attribute name="value"><xsl:value-of select="." /></xsl:attribute>
    <xsl:value-of select="." />
  </date>
</xsl:template>

它的输出是

<date value="1285">1285</date>

或者,在基于cell 上下文元素的一行(较短)中(使用属性值模板):

<xsl:template match="cell">
  <date value="."><xsl:value-of select="." /></date>
</xsl:template>

【讨论】:

谢谢!但不是 必须使用 !! 我为答案添加了一个较短的解决方案。也许这可以简化事情。 百万谢谢,现在我明白了!

以上是关于获取元素的值并使其成为 XSLT 中属性的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 xslt 获取 XML 的属性值和代码作为 html 的值

获取 XML 中属性的值

基本 XML/XSLT - 存在多个同名元素时的值

在 Swift 中删除 Unwrapped 并使其成为可选? [复制]

我们如何组合来自相同 data_type 的数据帧的两列的值并获取每个元素的计数?

从 gitlab-ci dir 中获取所有工件并使其成为工件