我正在努力解决一些基本的XSLT问题。我想从某些XML中删除一个元素,具体取决于它是否具有某个属性。
XML看起来像这样:
<root>
<Request URL="www.google.com">
<id name="google"/>
</Request>
<Request URL="www.yahoo.com">
<id name="yahoo"/>
</Request>
</root>
如果网址为“www.google.com”,我想删除Request元素,并删除元素和,所以我最终会得到以下内容:
<root>
<Request URL="www.yahoo.com">
<id name="yahoo"/>
</Request>
</root>
到目前为止,我有以下内容,但它无效:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!--identity template copies everything forward by default-->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<!--empty template suppresses this attribute-->
<xsl:template match="Request[@Url='www.google.com']"/>
</xsl:stylesheet>
答案 0 :(得分:1)
只是提示:xml区分大小写。在输入xml中,您在Request元素中有属性URL。但是在xslt中你有@Url。所以试试这个
<xsl:template match="Request[@URL='www.google.com'] "/>
答案 1 :(得分:0)
您的XML源具有属性名称“URL”,但您尝试匹配“Url”。