0

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

1 回答 1

1

为了获得<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>
于 2012-05-11T22:16:29.793 回答