xml
  • xslt
  • xslt-1.0
  • 2012-05-07 47 views 0 likes 
    0

    我有類似XML代碼:XSLT(1.0):當獲取節點的內容時,是否可以忽略/跳過它的一部分(或子元素)?

    <body>Text Here1. 
    </body> 
    <body><Title>Title</Title>Text Here2. 
    </body> 
    <body>Text Here3. 
    </body> 
    

    而且我用我的XSLT下面的代碼:

    <xsl:when test="@name='body'"> 
    <p> 
    <xsl:value-of select='normalize-space(node())'/> 
    </p> 
    </xsl:when> 
    

    什麼是最好的機制,忽略子元素的第二個節點,或者對節點應用特殊格式(假設我想粗體顯示文本)?

    感謝

    回答

    1

    當使用XSLT來處理分層結構中,通常使用應用的模板,它允許你遞歸遍歷XML輸入。下面的示例將使用paragraph元素封裝body元素中的文本,並在bold元素內封裝Title元素中的文本。所有其他元素將被忽略。

    <?xml version="1.0"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
        <xsl:output method="html" version="4.0" encoding="iso-8859-1" indent="yes"/> 
        <xsl:template match="/"> 
        <xsl:apply-templates /> 
        </xsl:template> 
        <xsl:template match="body"> 
        <p> 
         <xsl:apply-templates /> 
        </p> 
        </xsl:template> 
        <xsl:template match="Title"> 
        <b> 
         <xsl:apply-templates /> 
        </b> 
        </xsl:template> 
        <xsl:template match="text()"> 
        <xsl:value-of select='normalize-space(.)'/> 
        </xsl:template> 
    </xsl:stylesheet> 
    
    相關問題