如何在XSLT中删除属性具有特定值的元素

时间:2018-11-16 17:01:22

标签: xml xslt

我有一个类似下面的XML,我想删除<Student>Name属性为Class的{​​{1}}元素。

如何在XSLT中实现这一目标?

&lt;Choose One&gt;

这是我的示例XML:

<Students>
    <Student Name="&lt;Choose One&gt;" Class="&lt;Choose One&gt;" />
<Students>

1 个答案:

答案 0 :(得分:1)

要删除具有给定属性的所有<Student>元素,可以使用以下空模板:

<xsl:template match="Student[contains(@Name,'&lt;Choose One&gt;') and contains(@Units,'&lt;Choose One&gt;')]" />

要复制所有其他元素,可以使用身份模板

<!-- identity template  -->
<xsl:template match="node()|@*">
  <xsl:copy>
    <xsl:apply-templates select="node()|@*" />
  </xsl:copy>
</xsl:template>