有人可以帮我理解下面的XSLT
<xsl:stylesheet version="1.0" >
<xsl:output method="xml" indent="yes" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
基本上我想应用XSLt转换从web.config中删除下面的元素:
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress="http://proxyserver"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
答案 0 :(得分:2)
这是“身份”模板的标准形式,它将输入复制到输出不变 - 它通过匹配任何节点(@*
匹配属性,node()
匹配其他所有内容)来工作,该节点的浅拷贝,然后递归地将模板应用于它刚刚浅拷贝的节点的属性和子节点。您可以通过添加其他模板来覆盖特定节点的此行为,这些模板将优先于身份模板。例如,要删除所有可添加的system.net
元素
<xsl:template match="system.net" />
(即“当你看到system.net
元素时,什么都不做”)。删除所有system.net
元素的完整转换将是
<xsl:stylesheet version="1.0" >
<xsl:output method="xml" indent="yes" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="system.net" />
</xsl:stylesheet>