2015-12-30 63 views
1

我有一個Xml,它具有多個屬性,一些屬性以一些常見文本開頭。選擇不同的XML屬性,以Xslt開頭的某些文本

<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」字母開頭的屬性。

感謝

+0

請出示您的預期輸出的文檔。 –

+0

「<根名稱= 「辦法」> \t <成員名稱= 「MAM1」/> \t <成員名稱= 「MAM2」/> \t <成員名稱= 「MAM254」/> \t <成員名稱=」 MAM73" /> \t <成員名稱= 「MAM74」/> \t <成員名稱= 「MAM11」/> \t <成員名稱= 「MAM10」/> \t <成員名稱= 「MAM18」/> \t \t \t ' –

回答

0

......怎麼

<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> 
+0

謝謝,它的工作 –

相關問題