首页 > 解决方案 > 在 xsl 中使用带有副本的 concat

问题描述

我有带有复制方法的 xsl 代码,它复制 xml 标记,因为我想用单引号连接值

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:foo="http://www.fo.org/" xmlns:bar="http://www.bar.org">
    <xsl:template match="/">
        <xsl:copy-of xml:id="id_94" select="concat('`',/TransmissionHeader ,'`')"/>
    </xsl:template>
</xsl:stylesheet>

这是输入

<TransmissionHeader>hello</TransmissionHeader >

输出是

`hello`

但我希望输出是

`<TransmissionHeader>hello</TransmissionHeader>`

如何做到这一点?

标签: xmlxslt

解决方案


可以使用以下方法产生预期的输出:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" version="1.0" encoding="utf-8" indent="yes"/>

<xsl:template match="/">
    <xsl:text>'</xsl:text>
    <xsl:copy-of select="TransmissionHeader"/>
    <xsl:text>'</xsl:text>
</xsl:template>

</xsl:stylesheet>

但是,正如我在对您的问题的评论中指出的那样,结果没有多大意义。


推荐阅读