2012-05-11 7 views
0

私はxmlを持っています。(xmlns = ""とタグをチェックしてください)私が作成したいのですが、合計計算には注意が必要です。予想されるフォーマットはそのようにしたい。すべてのヘルプは大歓迎。XSLTのコピーはそのままです

source.xml

 <Employees> 
     <employee> 
     <dept>1</dept> 
     <sec></sec> 
     <employee> 
      <employee> 
      <dept>2</dept> 
       <sec></sec> 
      <employee> 
      </Employees> 

Expectedresult.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> 

実際の結果

のような出力に <sec/>を得るために、
      <Employees> 
           <totalemp>2</totalemp> 
           <employee xmlns=""> 
           <dept>1</dept> 
            <sec/> 
           </employee> 
           <employee> 
            <dept>2</dept> 
             <sec/> 
            <employee> 
            </Employees> 
+3

あなたのXSLTを見ることなく、あなたがこれを引き起こしたことを知ることは不可能です。また、どのXSLTエンジン? – lavinio

+2

実際のXMLパーサを取得するようにクライアントに指示してください – ykaganovich

+0

あなたの入力は整形式のXMLではないので、どのように出力を得ることができないのか分かりません。 –

答えて

1

(お持ちの場合は?)、あなたのxsl:outputmethod="html"を追加してみてください。

例:

XML入力(整形)のXalanとサクソン6.5でテスト

<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出力(。 5)

<Employees> 
    <totalemp>2</totalemp> 
    <employee> 
     <dept>1</dept> 
     <sec></sec> 
    </employee> 
    <employee> 
     <dept>2</dept> 
     <sec></sec> 
    </employee> 
</Employees> 
+0

他のオプションはありますか?私の結果ファイルはxmlでなければなりません。パイプラインでbiztalkを使用しています。xsltファイルを送信ポートに入れます。 –

+0

Iam getting Xmlns = ""、私はそれを取り除きたい –

関連する問題