0

作成された出力と変数に設定された出力から空のノードを削除するのを手伝ってください。次のようにxsltを作成しました

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:msxsl="urn:schemas-microsoft-com:xslt"
                xmlns:user="http://www.contoso.com"
                version="1.0">
  <xsl:variable name="books">
    <header>
    <book author="Michael Howard">Writing Secure Code</book>
    <book author="Michael Kay">XSLT Reference</book>
    </header>
    <item>
      <item1>item1</item1>
      <item2></item2>//remove this empty tag
      <item3></item3>//remove this empty tag
    </item>
    <summary>
      <summary1>
      <sum1>SUB1</sum1>
        <sum2></sum2> //remove this empty tag
      </summary1>
      <summary2>Summary2</summary2>
      <summary3>Summ3</summary3>
    </summary>
  </xsl:variable>

  <xsl:template match="/">
    <xsl:value-of select="$books"/>    
      <xsl:for-each select="msxsl:node-set($books)/node()">                
            <xsl:apply-templates/>
            <!--select="ms:node-set($completeDocument[1])/node()"/>-->           
      </xsl:for-each>  
  </xsl:template>
  <xsl:template match= "*[not(@*|*|comment()|processing-instruction()) and normalize-space()='']"/>
</xsl:stylesheet>

アウトプットが生み出した

 <?xml version="1.0" encoding="utf-8"?>Writing Secure CodeXSLT Referenceitem1item2SUB1sub2Summary2Summ3Writing Secure CodeXSLT Referenceitem1item2SUB1sub2Summary2Summ3

期待される出力

 <header>
        <book author="Michael Howard">Writing Secure Code</book>
        <book author="Michael Kay">XSLT Reference</book>
        </header>
        <item>
            <item1>item1</item1> 
        </item>
        <summary>
          <summary1>
          <sum1>SUB1</sum1>
          </summary1>
          <summary2>Summary2</summary2>
          <summary3>Summ3</summary3>
        </summary>

予期される出力は、空のノードの削除を示しています。

4

1 に答える 1