我正在尝试为输入添加名称空间:
<?xml version="1.0" encoding="utf-8"?>
<VLOG_Export>
<Send_Referenznr_01>3200000042</Send_Referenznr_01>
<Send_Referenznr_06>00000000001000189718</Send_Referenznr_06>
<Send_ID>1Z78A1070461454103</Send_ID>
</VLOG_Export>
预期产出:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:VLOG_Export xmlns:ns0="http://mycomp.com/VLOG/SD/vlog/export">
<Send_Referenznr_01>sdfsdf</Send_Referenznr_01>
<Send_Referenznr_06>sdfsf</Send_Referenznr_06>
<Send_ID>sdfsdf</Send_ID>
</ns0:VLOG_Export>
使用此xslt:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*" priority="1">
<xsl:element name="{local-name()}" namespace="http://mycomp.com/VLOG/SD/vlog/export">
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
我得错了输出。 欢迎任何提示。 THX
答案 0 :(得分:0)
这可以按预期工作:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://mycomp.com/VLOG/SD/vlog/export">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/VLOG_Export" priority="1">
<xsl:element name="ns0:{local-name()}">
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
看到它正常工作:http://xsltransform.net/6rewNyz