在XML中设置变量的名称空间

时间:2018-04-15 16:50:58

标签: xml xslt

尝试从其中发送的数据动态设置XMLNS属性时,在打开XML文件时会显示以下错误消息:

  第76行第1行的

错误:xmlns:' {Table / namespace}'不是一个   有效的URI

当正常地将值打印到元素时,如下面的节点namespace,我可以看到该值是正确的。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
    <xsl:output method="xml"/>
    <xsl:template match="/NewDataSet">
        <MyRoot xmlns="{Table/namespace}" >
            <namespace>
                <xsl:value-of select="{Table/namespace}" />
            </namespace>
        </MyRoot>
    </xsl:template>
</xsl:stylesheet>

如何从发送的数据中动态设置XMLNS属性?

1 个答案:

答案 0 :(得分:3)

您必须明确使用xsl:element来使用其namespace属性,该属性会在输出XML中设置xmlns属性:

<xsl:element name="MyRoot" namespace="{Table/namespace}">
    <namespace>
        <xsl:value-of select="Table/namespace" />
    </namespace>
</xsl:element>