这是我的XML:
<node>
<siraj>abc</siraj>
<shaik>ab</shaik>
<basha>si</basha>
</node>
<node>
<siraj>abc</siraj>
<shaik>ab</shaik>
<basha>si</basha>
</node>
<node>
<siraj>abc</siraj>
<basha>si</basha>
</node>
<node>
<siraj>abc</siraj>
<shaik>ab</shaik>
<basha>si</basha>
</node>
<node>
<siraj>abc</siraj>
<basha>si</basha>
</node>
和XSLT:
<xsl:for-each select="//node">
<xsl:if test="not(node/shaik)">
<xsl:value-of select="siraj"/>
<xsl:value-of select="basha"/>
</xsl:if>
<xsl:for-each>
我有一个类似上面的xml。我必须跳过没有<shaik>
孩子的节点。我尝试使用xsl:for-each
,但我无法得到答案。
答案 0 :(得分:0)
查找用于复制整个文档的identity transform。然后,您可以在其中添加“例外”,以添加,删除或跳过某些元素。
这个XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="node[shaik]"/>
<!-- XSLT Identity Transform -->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
应用于此XML文档:
<nodes>
<node>
<siraj>abc</siraj>
<shaik>ab</shaik>
<basha>si</basha>
</node>
<node>
<siraj>abc</siraj>
<shaik>ab</shaik>
<basha>si</basha>
</node>
<node>
<siraj>abc</siraj>
<basha>si</basha>
</node>
<node>
<siraj>abc</siraj>
<shaik>ab</shaik>
<basha>si</basha>
</node>
<node>
<siraj>abc</siraj>
<basha>si</basha>
</node>
</nodes>
给出了这个结果XML:
<nodes>
<node>
<siraj>abc</siraj>
<basha>si</basha>
</node>
<node>
<siraj>abc</siraj>
<basha>si</basha>
</node>
</nodes>