0

そのままコピーしたい xml があります (xmlns="" とタグを確認してください。そのまま作成したいです。全体の計算が行われます。この問題のみです。有効です。それでも、クライアントは期待される形式を次のようにしたいと考えています。それはどんな助けでも大歓迎です。

source.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 に答える