Xml 如何删除属性在XSLT中具有特定值的元素
我有一个如下所示的XML,我想删除Xml 如何删除属性在XSLT中具有特定值的元素,xml,xslt,Xml,Xslt,我有一个如下所示的XML,我想删除元素,其中Name和Class属性是选择一个 如何在XSLT中实现这一点 <Students> <Student Name="<Choose One>" Class="<Choose One>" /> <Students> 这是我的示例XML: <?xml version='1.0' encoding='utf-8'?> <Classes&
元素,其中Name
和Class
属性是选择一个
如何在XSLT中实现这一点
<Students>
<Student Name="<Choose One>" Class="<Choose One>" />
<Students>
这是我的示例XML:
<?xml version='1.0' encoding='utf-8'?>
<Classes>
<Class Name="Class A">
<UniqueSourceIdentifier>1345</UniqueSourceIdentifier>
<Students>
<Student Name="Test1" Units="Unit A" />
<Student Name="<Choose One>" Units="<Choose One>" />
<Student Name="<Choose One>" Units="<Choose One>" />
<Student Name="<Choose One>" Units="<Choose One>" />
</Students> <!-- Added by edit -->
</Class> <!-- Added by edit -->
</Classes> <!-- Added by edit -->
1345
要删除具有给定属性的所有
元素,可以使用以下空模板:
<xsl:template match="Student[contains(@Name,'<Choose One>') and contains(@Units,'<Choose One>')]" />
要复制所有其他元素,可以使用标识模板
谢谢您的回答,但是提供的解决方案不起作用。到底什么似乎不起作用?你必须使用某种应用模板
,比如身份模板来匹配空模板。我更新了我的答案。错误是您在问题中命名了一个属性Class
,而不是Units
。现在它应该可以按预期工作了。我还将身份模板添加到了答案中。请编辑您的问题,将Class
更改为Units
。否则,答案将与您的问题不匹配。@FaisalShah-如果有帮助,下面是一个工作示例,显示此答案的工作原理:
<!-- identity template -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>