2013-10-08 47 views
1

當我運行XSL以選擇XML文件的某些元素時,我在生成的輸出中找到未選定元素的空白處。使用XSL轉換XML文件留下未選定元素的空白處

例如如果我是轉化以下只得到黑貓:

<cats> 
<cat> 
    <name>Steve</name> 
    <color>black</color> 
</cat> 
<cat> 
    <name>Tom</name> 
    <color>tabby</color> 
</cat> 
<cat> 
    <name>Archibald</name> 
    <color>black</color> 
</cat> 
</cats> 

我可能會得到這樣的:

<cats> 
<cat> 
    <name>Steve</name> 
    <color>black</color> 
</cat> 




<cat> 
    <name>Archibald</name> 
    <color>black</color> 
</cat> 
</cats> 

這是可控的XSL本身,或者是該工具的「功能」我正在使用?

回答

2

這可以在XSL中控制。你需要做的是這樣的:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" version="1.0" indent="yes"/> 
    <xsl:strip-space elements="*"/> 

    .... 

</xsl:stylesheet> 

這是因爲在你的XML,有<cat><name>等之間的空白元素(如換行符,回車)。這些通過內置的文本節點和輸出模板進行匹配。 <xsl:strip-space>元素從您的輸入中刪除無關緊要的空白。然後,您需要在<xsl:output>元素中設置indent="yes"以實現所需的縮進。