使用XSLT 1.0进行分组

时间:2010-08-11 12:43:19

标签: xslt xslt-grouping

我的XML看起来像

 <xml version="1.0" standalone="no"> 
 <Alerts AlertsName="">
 <Alert UserId="13" OwnerId="13" OwnerName="jasprice" OwnerEmail="jatin.mehta@test.com" Scope="I">
 <Assets>
 <Asset>
 <AssetTaxonamy>
 <AssetTopics>
  <AssetTopic Type="Global business">Globalisation</AssetTopic> 
  </AssetTopics>
  </AssetTaxonamy>
  <AssetTitle>Doing it the Chinese way: Disney's strategy for a lucrative ride in China</AssetTitle> 
  <AssetDescription>FROM INSEAD KNOWLEDGE As trite as the phrase ?think global, act local? may be, it nevertheless encapsulates The Walt Disney Company?s approach to making a success of its business in China. To that end, producing content that has a cultural and emotional resonance with Chinese consumers is crucial, says Stanley Cheung, Disney?s managing director for Greater China. ?We see it in China today, that ...</AssetDescription> 
  <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=467282231</AssetLink> 
  <AssetPubDate>7/23/2010</AssetPubDate> 
  <AssetArrivalDate>8/9/2010</AssetArrivalDate> 
  <AssetSource>Executive briefings / whitepapers</AssetSource> 
  </Asset>
 <Asset>
 <AssetTaxonamy>
 <AssetTopics>
  <AssetTopic Type="Sales and marketing">Marketing effectiveness</AssetTopic> 
  </AssetTopics>
  </AssetTaxonamy>
  <AssetTitle>The empowered sales team: Enhancing productivity through thebetter use of information</AssetTitle> 
  <AssetDescription>FROM THE ECONOMIST INTELLIGENCE UNIT Sponsored by Microsoft Introduction Sales professionals create value by transforming their company?s raw product or service into a tailored solution for a customer?s needs. In a setting where customers have access to an unprecedented amount of product information, this is an increasingly challenging task. To thrive in this environment, companies...</AssetDescription> 
  <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=1297294514</AssetLink> 
  <AssetPubDate>7/23/2010</AssetPubDate> 
  <AssetArrivalDate>8/9/2010</AssetArrivalDate> 
  <AssetSource>Executive briefings / whitepapers</AssetSource> 
  </Asset>
 <Asset>
 <AssetTaxonamy>
 <AssetTopics>
  <AssetTopic Type="Sales and marketing">Customer management</AssetTopic> 
  </AssetTopics>
  </AssetTaxonamy>
  <AssetTitle>On the front lines: The role of information in enhancing customer service</AssetTitle> 
  <AssetDescription>FROM THE ECONOMIST INTELLIGENCE UNIT Sponsored by Microsoft Introduction Customer service professionals play a critical role in most companies because they are the people customers are most often in contact with, especially when problems arise. In today?s unsettled market environment, the ability to build a deep understanding of evolving customer needs and expectations can make a com...</AssetDescription> 
  <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=1327294517</AssetLink> 
  <AssetPubDate>7/23/2010</AssetPubDate> 
  <AssetArrivalDate>8/9/2010</AssetArrivalDate> 
  <AssetSource>Executive briefings / whitepapers</AssetSource> 
  </Asset>
 <Asset>
 <AssetTaxonamy>
 <AssetTopics>
  <AssetTopic Type="Leadership">Managing change</AssetTopic> 
  </AssetTopics>
  </AssetTaxonamy>
  <AssetTitle>World of leaders</AssetTitle> 
  <AssetDescription>FROM INDIAN SCHOOL OF BUSINESS At the inaugural ?ISB World of Leaders? speaker series event hosted by the Indian School of Business (ISB), Henry R Kravis, Co-Founder, Co-Chairman and Co-CEO, Kohlberg Kravis Roberts &amp; Company (KKR), New York, interacted with a select group of Indian business leaders about how he started his enterprise, the journey so far and his views on the private equity industr...</AssetDescription> 
  <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=1757259560</AssetLink> 
  <AssetPubDate>7/23/2010</AssetPubDate> 
  <AssetArrivalDate>8/9/2010</AssetArrivalDate> 
  <AssetSource>Executive briefings / whitepapers</AssetSource> 
  </Asset>
 <Asset>
 <AssetTaxonamy>
 <AssetTopics>
  <AssetTopic Type="Global business">Country strategies</AssetTopic> 
  </AssetTopics>
  </AssetTaxonamy>
  <AssetTitle>State industries in Lithuania: Follow the money</AssetTitle> 
  <AssetDescription>State-owned enterprises in eastern Europe are often a mess. Lithuania is trying to reform them DIG into the political undergrowth anywhere between the Baltic and the Black Seas and you soon find curious connections between state-owned enterprises, officials and politicians. They mostly escape public scrutiny--not least because politicians of all stripes tend to benefit from the state firms? large...</AssetDescription> 
  <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=67277991</AssetLink> 
  <AssetPubDate>7/23/2010</AssetPubDate> 
  <AssetArrivalDate>8/9/2010</AssetArrivalDate> 
  <AssetSource>Executive briefings / whitepapers</AssetSource> 
  </Asset>
</Assets>
</Alert>
</Alerts>

现在我们需要通过第一个Type属性(前全球化)对资产进行分组,然后需要按值分组(来自国家层级)。我们只需要展示一次Globalization和Country stratagies,并且需要显示低于该值的所有资产。我可以轻松地使用XSLT 2.0,但Microsoft .net不支持它,所以不能使用。

有人可以帮我吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

此转化

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

 <xsl:key name="kAssetByTypeName" match="Asset"
  use="AssetTaxonamy/AssetTopics/AssetTopic[1]/@Type"/>

 <xsl:key name="kAssetByTypeNameValue" match="Asset"
  use="concat(AssetTaxonamy/AssetTopics/AssetTopic[1]/@Type,
              AssetTaxonamy/AssetTopics/AssetTopic[1]
              )
  "/>

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

 <xsl:template match="Assets">
   <Assets>
     <xsl:for-each select=
     "Asset[generate-id()
           =
            generate-id(key('kAssetByTypeName',
                            AssetTaxonamy/AssetTopics
                                       /AssetTopic[1]/@Type
                            )
                            [1]
                        )
           ]
     ">
      <xsl:variable name="vcurType" select=
       "AssetTaxonamy/AssetTopics/AssetTopic[1]/@Type"/>

       <Topic Type="{$vcurType}">
          <xsl:for-each select=
           "key('kAssetByTypeName',$vcurType)
                [generate-id()
                =
                 generate-id(key('kAssetByTypeNameValue',
                                  concat($vcurType,
                                         AssetTaxonamy/AssetTopics/AssetTopic[1]
                                         )
                                 )[1]
                             )
                ]
           ">
             <xsl:variable name="vSubject" select=
              "AssetTaxonamy/AssetTopics/AssetTopic[1]"/>

             <Subject>
               <xsl:value-of select="$vSubject"/>
             </Subject>

             <xsl:apply-templates select=
              "key('kAssetByTypeNameValue',
                    concat($vcurType, $vSubject)
                   )
              "/>
          </xsl:for-each>
       </Topic>
     </xsl:for-each>
   </Assets>
 </xsl:template>
</xsl:stylesheet>

应用于提供的(已更正为格式良好的)XML文档

<Alerts AlertsName="">
    <Alert UserId="13" OwnerId="13" OwnerName="jasprice" OwnerEmail="jatin.mehta@test.com" Scope="I">
        <Assets>
            <Asset>
                <AssetTaxonamy>
                    <AssetTopics>
                        <AssetTopic Type="Global business">Globalisation</AssetTopic>
                    </AssetTopics>
                </AssetTaxonamy>
                <AssetTitle>Doing it the Chinese way: Disney's strategy for a lucrative ride in China</AssetTitle>
                <AssetDescription>FROM INSEAD KNOWLEDGE As trite as the phrase ?think global, act local? may be, it nevertheless encapsulates The Walt Disney Company?s approach to making a success of its business in China. To that end, producing content that has a cultural and emotional resonance with Chinese consumers is crucial, says Stanley Cheung, Disney?s managing director for Greater China. ?We see it in China today, that ...</AssetDescription>
                <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=467282231</AssetLink>
                <AssetPubDate>7/23/2010</AssetPubDate>
                <AssetArrivalDate>8/9/2010</AssetArrivalDate>
                <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
            <Asset>
                <AssetTaxonamy>
                    <AssetTopics>
                        <AssetTopic Type="Sales and marketing">Marketing effectiveness</AssetTopic>
                    </AssetTopics>
                </AssetTaxonamy>
                <AssetTitle>The empowered sales team: Enhancing productivity through thebetter use of information</AssetTitle>
                <AssetDescription>FROM THE ECONOMIST INTELLIGENCE UNIT Sponsored by Microsoft Introduction Sales professionals create value by transforming their company?s raw product or service into a tailored solution for a customer?s needs. In a setting where customers have access to an unprecedented amount of product information, this is an increasingly challenging task. To thrive in this environment, companies...</AssetDescription>
                <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=1297294514</AssetLink>
                <AssetPubDate>7/23/2010</AssetPubDate>
                <AssetArrivalDate>8/9/2010</AssetArrivalDate>
                <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
            <Asset>
                <AssetTaxonamy>
                    <AssetTopics>
                        <AssetTopic Type="Sales and marketing">Customer management</AssetTopic>
                    </AssetTopics>
                </AssetTaxonamy>
                <AssetTitle>On the front lines: The role of information in enhancing customer service</AssetTitle>
                <AssetDescription>FROM THE ECONOMIST INTELLIGENCE UNIT Sponsored by Microsoft Introduction Customer service professionals play a critical role in most companies because they are the people customers are most often in contact with, especially when problems arise. In today?s unsettled market environment, the ability to build a deep understanding of evolving customer needs and expectations can make a com...</AssetDescription>
                <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=1327294517</AssetLink>
                <AssetPubDate>7/23/2010</AssetPubDate>
                <AssetArrivalDate>8/9/2010</AssetArrivalDate>
                <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
            <Asset>
                <AssetTaxonamy>
                    <AssetTopics>
                        <AssetTopic Type="Leadership">Managing change</AssetTopic>
                    </AssetTopics>
                </AssetTaxonamy>
                <AssetTitle>World of leaders</AssetTitle>
                <AssetDescription>FROM INDIAN SCHOOL OF BUSINESS At the inaugural ?ISB World of Leaders? speaker series event hosted by the Indian School of Business (ISB), Henry R Kravis, Co-Founder, Co-Chairman and Co-CEO, Kohlberg Kravis Roberts &amp; Company (KKR), New York, interacted with a select group of Indian business leaders about how he started his enterprise, the journey so far and his views on the private equity industr...</AssetDescription>
                <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=1757259560</AssetLink>
                <AssetPubDate>7/23/2010</AssetPubDate>
                <AssetArrivalDate>8/9/2010</AssetArrivalDate>
                <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
            <Asset>
                <AssetTaxonamy>
                    <AssetTopics>
                        <AssetTopic Type="Global business">Country strategies</AssetTopic>
                    </AssetTopics>
                </AssetTaxonamy>
                <AssetTitle>State industries in Lithuania: Follow the money</AssetTitle>
                <AssetDescription>State-owned enterprises in eastern Europe are often a mess. Lithuania is trying to reform them DIG into the political undergrowth anywhere between the Baltic and the Black Seas and you soon find curious connections between state-owned enterprises, officials and politicians. They mostly escape public scrutiny--not least because politicians of all stripes tend to benefit from the state firms? large...</AssetDescription>
                <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=67277991</AssetLink>
                <AssetPubDate>7/23/2010</AssetPubDate>
                <AssetArrivalDate>8/9/2010</AssetArrivalDate>
                <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
        </Assets>
    </Alert>
</Alerts>

生成所需的分组

<Alerts AlertsName="">
   <Alert UserId="13" OwnerId="13" OwnerName="jasprice" OwnerEmail="jatin.mehta@test.com" Scope="I">
      <Assets>
         <Topic Type="Global business">
            <Subject>Globalisation</Subject>
            <Asset>
               <AssetTaxonamy>
                  <AssetTopics>
                     <AssetTopic Type="Global business">Globalisation</AssetTopic>
                  </AssetTopics>
               </AssetTaxonamy>
               <AssetTitle>Doing it the Chinese way: Disney's strategy for a lucrative ride in China</AssetTitle>
               <AssetDescription>FROM INSEAD KNOWLEDGE As trite as the phrase ?think global, act local? may be, it nevertheless encapsulates The Walt Disney Company?s approach to making a success of its business in China. To that end, producing content that has a cultural and emotional resonance with Chinese consumers is crucial, says Stanley Cheung, Disney?s managing director for Greater China. ?We see it in China today, that ...</AssetDescription>
               <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=467282231</AssetLink>
               <AssetPubDate>7/23/2010</AssetPubDate>
               <AssetArrivalDate>8/9/2010</AssetArrivalDate>
               <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
            <Subject>Country strategies</Subject>
            <Asset>
               <AssetTaxonamy>
                  <AssetTopics>
                     <AssetTopic Type="Global business">Country strategies</AssetTopic>
                  </AssetTopics>
               </AssetTaxonamy>
               <AssetTitle>State industries in Lithuania: Follow the money</AssetTitle>
               <AssetDescription>State-owned enterprises in eastern Europe are often a mess. Lithuania is trying to reform them DIG into the political undergrowth anywhere between the Baltic and the Black Seas and you soon find curious connections between state-owned enterprises, officials and politicians. They mostly escape public scrutiny--not least because politicians of all stripes tend to benefit from the state firms? large...</AssetDescription>
               <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=67277991</AssetLink>
               <AssetPubDate>7/23/2010</AssetPubDate>
               <AssetArrivalDate>8/9/2010</AssetArrivalDate>
               <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
         </Topic>
         <Topic Type="Sales and marketing">
            <Subject>Marketing effectiveness</Subject>
            <Asset>
               <AssetTaxonamy>
                  <AssetTopics>
                     <AssetTopic Type="Sales and marketing">Marketing effectiveness</AssetTopic>
                  </AssetTopics>
               </AssetTaxonamy>
               <AssetTitle>The empowered sales team: Enhancing productivity through thebetter use of information</AssetTitle>
               <AssetDescription>FROM THE ECONOMIST INTELLIGENCE UNIT Sponsored by Microsoft Introduction Sales professionals create value by transforming their company?s raw product or service into a tailored solution for a customer?s needs. In a setting where customers have access to an unprecedented amount of product information, this is an increasingly challenging task. To thrive in this environment, companies...</AssetDescription>
               <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=1297294514</AssetLink>
               <AssetPubDate>7/23/2010</AssetPubDate>
               <AssetArrivalDate>8/9/2010</AssetArrivalDate>
               <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
            <Subject>Customer management</Subject>
            <Asset>
               <AssetTaxonamy>
                  <AssetTopics>
                     <AssetTopic Type="Sales and marketing">Customer management</AssetTopic>
                  </AssetTopics>
               </AssetTaxonamy>
               <AssetTitle>On the front lines: The role of information in enhancing customer service</AssetTitle>
               <AssetDescription>FROM THE ECONOMIST INTELLIGENCE UNIT Sponsored by Microsoft Introduction Customer service professionals play a critical role in most companies because they are the people customers are most often in contact with, especially when problems arise. In today?s unsettled market environment, the ability to build a deep understanding of evolving customer needs and expectations can make a com...</AssetDescription>
               <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=1327294517</AssetLink>
               <AssetPubDate>7/23/2010</AssetPubDate>
               <AssetArrivalDate>8/9/2010</AssetArrivalDate>
               <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
         </Topic>
         <Topic Type="Leadership">
            <Subject>Managing change</Subject>
            <Asset>
               <AssetTaxonamy>
                  <AssetTopics>
                     <AssetTopic Type="Leadership">Managing change</AssetTopic>
                  </AssetTopics>
               </AssetTaxonamy>
               <AssetTitle>World of leaders</AssetTitle>
               <AssetDescription>FROM INDIAN SCHOOL OF BUSINESS At the inaugural ?ISB World of Leaders? speaker series event hosted by the Indian School of Business (ISB), Henry R Kravis, Co-Founder, Co-Chairman and Co-CEO, Kohlberg Kravis Roberts &amp; Company (KKR), New York, interacted with a select group of Indian business leaders about how he started his enterprise, the journey so far and his views on the private equity industr...</AssetDescription>
               <AssetLink>http://viewswire.eiu.com/index.asp?layout=EBArticleVW3&amp;article_id=1757259560</AssetLink>
               <AssetPubDate>7/23/2010</AssetPubDate>
               <AssetArrivalDate>8/9/2010</AssetArrivalDate>
               <AssetSource>Executive briefings / whitepapers</AssetSource>
            </Asset>
         </Topic>
      </Assets>
   </Alert>
</Alerts>

请注意:使用Muenchian方法进行分组。