2010-08-11 6 views
1

Mon XML ressembleRegroupement en utilisant XSLT 1.0

<xml version="1.0" standalone="no"> 
<Alerts AlertsName=""> 
<Alert UserId="13" OwnerId="13" OwnerName="jasprice" OwnerEmail="[email protected]" 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> 

Maintenant, nous avons besoin des actifs du groupe par premier attribut de type (ex mondialisation) et doivent regrouper par valeur (de stratagies ex pays). Nous devons afficher les stratagèmes Globalisation et Country une seule fois et afficher tous les actifs ci-dessous. Je peux le faire facilement avec XSLT 2.0 mais il n'est pas supporté par Microsoft .net donc je ne peux pas l'utiliser.

Quelqu'un peut-il m'aider ici?

Merci d'avance.

+0

Veuillez faire plus attention lorsque vous collez du code - au moins formatez-le pour la lisibilité et non directement à partir de IE. – Oded

+0

Merci. modifié. – jvm

+0

Bonne question (+1). Voir ma réponse pour une solution XSLT 1.0 complète et efficace. –

Répondre

1

Cette transformation:

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

lorsqu'il est appliqué sur le document XML fourni (corrigé pour être bien formé):

<Alerts AlertsName=""> 
    <Alert UserId="13" OwnerId="13" OwnerName="jasprice" OwnerEmail="[email protected]" 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> 

produit le groupement recherché:

<Alerts AlertsName=""> 
    <Alert UserId="13" OwnerId="13" OwnerName="jasprice" OwnerEmail="[email protected]" 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> 

A noter: Utilisation de la méthode Muenchienne pour le groupement.

+0

Grande réponse Dimitre. Mais la question ici est, j'ai XML et mon je vais juste faire la transformation XSLT et il devrait générer le code HTML désiré. Votre réponse est parfaite, mais elle ajoutera une étape de traitement supplémentaire que je ne peux pas adapter à ma solution métier. Pouvez-vous en suggérer un de plus? – jvm

+0

Nous avons besoin d'une sortie HTML comme

Global Business Pays Stratégies AssetTitle1 AssetDescp1 AssetTitle2 AssetDescp2 Mondialisation AssetTitle1 AssetDescp1 AssetTitle2 AssetDescp2
manière identique pour les autres groupes ........... – jvm

+0

@ jatin: J'ai * résolu * votre p roblem - le groupement imbriqué. Ce groupe n'est pas sur le HTML. Dans le cas où vous ne savez pas quel HTML utiliser, il suffit de demander aux personnes du groupe HTML. Votre question * XSLT * a été complètement répondue.Sans oublier que vous n'avez jamais mentionné dans votre question initiale que vous aviez besoin d'une sortie HTML !!! –