我有 XML 我想按原样复制(检查 xmlns=" 和标签。 我想按原样创建。 总计算得到注意。 只有这个问题. 它是有效的. 客户端仍然希望预期的格式是这样的。 任何帮助非常感谢。
来源.xml
<Employees>
<employee>
<dept>1</dept>
<sec></sec>
<employee>
<employee>
<dept>2</dept>
<sec></sec>
<employee>
</Employees>
预期结果.xml
<Employees xmnls="1.2" xmlns:xsi="3" xsi:schemalocation="4">
<totalemp>2</totalemp>
<employee>
<dept>1</dept>
<sec></sec>
<employee>
<employee>
<dept>2</dept>
<sec></sec>
<employee>
</Employees>
实际结果
<Employees>
<totalemp>2</totalemp>
<employee xmlns="">
<dept>1</dept>
<sec/>
</employee>
<employee>
<dept>2</dept>
<sec/>
<employee>
</Employees>
为了让<sec/>
像<sec></sec>
一样输出,请尝试将method="html"
添加到您的xsl:output
中(如果您有的话?
例:
XML 输入(格式正确):
<Employees>
<employee>
<dept>1</dept>
<sec/>
</employee>
<employee>
<dept>2</dept>
<sec/>
</employee>
</Employees>
XSLT 1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="html"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Employees">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<totalemp><xsl:value-of select="count(employee)"/></totalemp>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
XML 输出(使用 Xalan 和 Saxon 6.5.5 测试)
<Employees>
<totalemp>2</totalemp>
<employee>
<dept>1</dept>
<sec></sec>
</employee>
<employee>
<dept>2</dept>
<sec></sec>
</employee>
</Employees>