我这里有一个xml文件:
<DM_Function Function="attribute value">
<DM>
<DM_Source SourceID="id1" SourceTitle="Title1" SourceContent="content1">
</DM_Source>
</DM>
<DM>
<DM_Source SourceID="id2" SourceTitle="Title2" SourceContent="content2">
</DM_Source>
</DM>
<DM>
<DM_Source SourceID="id3" SourceTitle="Title3" SourceContent="content3">
</DM_Source>
</DM>
</DM_Function>
在XSLT文件中,有一个变量:
<xsl:param name="dmIndex" select="2" />
我想将XML文件转换为另一个。变量是元素的索引,我希望其他XML文件只显示Root元素和指定的元素(包括属性)。
答案 0 :(得分:0)
此转化:
<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:param name="dmIndex" select="2" />
<xsl:template match="/*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="DM[$dmIndex]"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
应用于提供的XML文档:
<DM_Function Function="attribute value">
<DM>
<DM_Source SourceID="id1" SourceTitle="Title1" SourceContent="content1">
</DM_Source>
</DM>
<DM>
<DM_Source SourceID="id2" SourceTitle="Title2" SourceContent="content2">
</DM_Source>
</DM>
<DM>
<DM_Source SourceID="id3" SourceTitle="Title3" SourceContent="content3">
</DM_Source>
</DM>
</DM_Function>
生成想要的正确结果:
<DM_Function Function="attribute value">
<DM>
<DM_Source SourceID="id2" SourceTitle="Title2" SourceContent="content2"/>
</DM>
</DM_Function>