不匹配的子元素也会出现在XSL模板下

问题描述 投票:3回答:1

我有以下XML代码

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="new_proto.xsl"?>
<Return>
 <SDSSJ type="form" />
 <JSFK type="form" />
 <KJFK type="form2" />
 <HJDHH type="form"> New Val </HJDHH>
 <NNDJB type="some"> 
    <DJSJJ type="form">
       THIS
    </DJSJJ>
    <KAKKK type="nope">
    DONT
    </KAKKK>
 Not
</NNDJB>
</Return>

我只想获取所有具有type ='form'属性的节点的名称。所以我尝试了以下XSL。

  1 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  2    <xsl:output method="html" omit-xml-declaration="yes" indent="no"/>
  3       <xsl:template match="//*[@type='form']">
  4       <xsl:value-of select="name()" />
  5       </xsl:template>
  6 </xsl:stylesheet>

但不是SDSSJ JSFK HJDHH DJSJJ而是SDSSJ JSFK HJDHH DJSJJ DONT Not。为什么不符合模板的子元素仍然出现?我应该怎么做才能摆脱它们?

xml xslt xslt-1.0
1个回答
7
投票

添加此模板:

<xsl:template match="text()"/>
© www.soinside.com 2019 - 2024. All rights reserved.