按原样复制 XSLT



我有 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>

最新更新