选择以Xslt的某些文本开头的Distinct XML属性



我有一个Xml,它有多个属性,有些属性以一些公共文本开头。

<root name="Measures" >
    <Member name="MAF94">
        <Member name="MAF95">
            <Member name="MAM1" />
            <Member name="MAM2" />
        </Member>
        <Member name="MAF96">
            <Member name="MAF97">
                <Member name="MAM254" />
                <Member name="MAF98">
                    <Member name="MAM73" />
                    <Member name="MAM74" />
                    <Member name="MAF99">
                        <Member name="MAM11" />
                        <Member name="MAM10" />
                    </Member>
                    <Member name="MAF100">
                        <Member name="MAM18" />
                        <Member name="MAM15" />
                    </Member>
                </Member>
            </Member>
        </Member>
        <Member name="MAF352">
            <Member name="MAM1814" />
            <Member name="MAM1815" />
        </Member>
    </Member>
</root>

如何获得与某些文本匹配的不同属性。在上面的例子中,我只想选择以"MAM"字母开头的属性。

感谢

怎么样。。。

<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
<xsl:output encoding="utf-8" indent="yes" omit-xml-declaration="yes" />
<xsl:strip-space elements="*" />
<xsl:template match="@*|text()|comment()|processing-instruction()|*" />
<xsl:template match="/*">
  <xsl:copy>
    <xsl:apply-templates select="//Member[substring(@name,0,3)='MAM']" />
  </xsl:copy>
</xsl:template>
<xsl:template match="Member">
  <xsl:copy>
    <xsl:copy-of select="@*" />
  </xsl:copy>
</xsl:template>
</xsl:stylesheet>

最新更新