我在使用XLTS解析XML文件時遇到問題。具有指定屬性的XSLT轉換刪除節點
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">
<body style="margin-top: 0px;">
<a name="top"/>
<a name="menu"> </a>
<a href="cool html"> </a>
<table width="100%" cellspacing="0" cellpadding="2" border="0" class="aws_border sortable"/>
</body>
</html>
,我需要刪除所有節點與<a name="something"> </a>
,同時保留在文件<a href>
節點和其他節點。
我已經試過
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="body">
<xsl:for-each select="a">
<xsl:if test="@href != '' ">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
但它僅保留<a href >
節點,並刪除所有其他節點。
一些建議,除非真的有必要,否則不要使用for-each! (例如:用於訪問兄弟節點等)。嘗試使用'<模板匹配=「」>'(像Tomalak的答案)這使代碼可讀和簡單:) –