7
A
回答
10
該轉化(重寫identity rule):
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[not(*) and not(text()[normalize-space()])]"/>
</xsl:stylesheet>
當施加到下面的XML文檔:
<t>
<a>
<b>
<c/>
</b>
</a>
<p></p>
<p> </p>
<p>Text</p>
</t>
正確地產生所需的結果:
<t>
<a>
<b/>
</a>
<p>Text</p>
</t>
切記:使用和覆蓋身份規則/模板是最基本和最強大的XSLT設計模式。對於大多數節點將被不變地複製並且只有一些特定節點需要被改變,刪除,重命名等等的各種問題,這是正確的選擇。
注意:@Abel in他的評論建議此溶液的一些位需要進一步解釋:
對於外行或好奇:
not(*)
裝置:不具有子 元件;not(text()[normalize-space()])
意思是:沒有文本節點 而且只有非空白的文本。
相關問題
- 1. CKEDITOR刪除空標籤
- 2. 刪除空圖像標籤
- 3. ASP.NET標籤刪除空間
- 4. 刪除空標籤對
- 5. 刪除html標籤之間的空格?
- 6. 刪除Imperavi Redactor中的空標籤
- 7. 刪除div標籤之間的空間
- 8. 刪除額外的空間標籤
- 9. 刪除錨標籤之間的空間
- 10. Magento的 - 刪除空P-標籤模塊
- 11. 如何刪除xslt中的空標籤?
- 12. 刪除標籤面板中的空間
- 13. 如何刪除標籤自動留空
- 14. 用smarty刪除空html標籤
- 15. Fckeditor刪除空標籤!怎麼修?
- 16. PHP regexp刪除空BB標籤
- 17. 如何從CKeditor中刪除空標籤
- 18. 刪除所有空p標籤
- 19. matplotlib TEX標籤添加/刪除空格
- 20. 需要在標籤後刪除空白
- 21. 刪除圖像標籤與空src
- 22. 如何用jQuery刪除空p標籤?
- 23. phpmyadmin 3.4.x刪除/空表標籤刪除
- 24. 刪除空span標籤,但保留以下li標籤
- 25. 刪除空p標籤和轉換等p標籤到\ n
- 26. 刪除html標籤
- 27. 刪除標籤foreach
- 28. 刪除H1標籤
- 29. 刪除標籤欄
- 30. 刪除HTML標籤
好問題,+1。使用最基本和最強大的XSLT設計模式可以正確地生成想要的結果 - 覆蓋身份規則。 –