用于删除不适用于XML文件的标记的XSLT

时间:2011-09-06 07:54:10

标签: xml xslt

我有以下XML文件

<?xml version="1.0" encoding="utf-8"?>
<article>
<Details>
<date>Posted: 08/22/2011 </date>
<title>Hi this is Jake. I am Smart</title>
<text></text>
</Details>
</article>

我有以下XLST删除详细信息和/详细信息标记

<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

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

<xsl:template match="Details"><xsl:apply-templates/></xsl:template>

预期输出

<?xml version="1.0" encoding="utf-8"?>
<article>

<date>Posted: 08/22/2011 </date>
<title>Hi this is Jake. I am Smart</title>
<text></text>

</article>

我试过这个。但它并没有消除 “详细信息”和“/详细信息”标记。

1 个答案:

答案 0 :(得分:0)

<xsl:template match="Details"><xsl:apply-templates/></xsl:template>

删除 <Details>本身,但它也会处理其内容。使用

<xsl:template match="Details" />

完全删除它(标记和内容)。

(如果 输出中仍然显示<Details>,那么您的问题就不完整了。)