IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] For-Each incluant des namespace


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Points : 102
    Points
    102
    Par défaut [XSLT] For-Each incluant des namespace
    Bonjour à tous,

    Cela fait maintenant un petit moment que j'essaie de créer une feuille XSLT, mais je me perds avec les namespace et les requete XPath.

    Voici donc mon fichier XML source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <soap:Body>
        <GetGroupCollectionFromSiteResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/directory/">
          <GetGroupCollectionFromSiteResult>
            <GetGroupCollectionFromSite>
              <Groups>
                <Group ID="5" Name="Collection1 Members" Description="Use this group to give people contribute permissions to the SharePoint site: Collection1" OwnerID="3" OwnerIsUser="False" />
                <Group ID="3" Name="Collection1 Owners" Description="Use this group to give people full control permissions to the SharePoint site: Collection1" OwnerID="3" OwnerIsUser="False" />
                <Group ID="4" Name="Collection1 Visitors" Description="Use this group to give people read permissions to the SharePoint site: Collection1" OwnerID="3" OwnerIsUser="False" />
              </Groups>
            </GetGroupCollectionFromSite>
          </GetGroupCollectionFromSiteResult>
        </GetGroupCollectionFromSiteResponse>
      </soap:Body>
    </soap:Envelope>
    Voici ce que je voudrai obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <Segments>
        <Segment Title="Collection1 Members" Value="5" />
        <Segment Title="Collection1 Owners" Value="3" />
        <Segment Title="Collection1 Visitors" Value="4" />
    </Segments>
    Malheureusement, entre les multiples namespace et les requêtes XPath associées je ne m'en sort pas.

    Voici mon avancée dans ma feuille XSLT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:group="http://schemas.microsoft.com/sharepoint/soap/directory/">
     
      <xsl:output method="xml" version="1.0" omit-xml-declaration="yes" encoding="UTF-8" indent="yes"/>
     
      <xsl:template match="/">
     
        <Segments>
     
    		<xsl:for-each select="/soap:Enveloppe/soap:Body/group:GetGroupCollectionFromSiteResponse/group:GetGroupCollectionFromSiteResult/group:GetGroupCollectionFromSite/group:Groups/group:Group">
    			<Segment />
    		</xsl:for-each>
     
        </Segments>
     
      </xsl:template>
     
    </xsl:stylesheet>
    Et j'obtiens cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Segments xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:group="http://schemas.microsoft.com/sharepoint/soap/directory/" />
    Je souhaiterai donc obtenir ma structure XML cité ci-dessus.

    Pouvez-vous m'aider à obtenir cela ?
    Serait-il possible aussi d'obtenir au final une structure XML sans les namespace comme juste au-dessus ?


    Merci par avance,
    Guillaume.

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Points : 102
    Points
    102
    Par défaut
    Bon comme d'habitude, à chaque fois que je viens poster ici, je trouve la solutions quelques minutes plus tard.

    Ma feuille XSLT terminée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" exclude-result-prefixes="soap group" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:group="http://schemas.microsoft.com/sharepoint/soap/directory/">
     
      <xsl:output method="xml" version="1.0" omit-xml-declaration="yes" encoding="UTF-8" indent="yes"/>
     
      <xsl:template match="/">
     
        <Segments>
     
    		<xsl:for-each select="//group:Group">
    			<Segment Title="{@Name}" Value="{@ID}" />
    		</xsl:for-each>
     
        </Segments>
     
      </xsl:template>
     
    </xsl:stylesheet>
    Pour supprimer les namespaces dans la structure XML de résultat, il faut utiliser l'attribut exclude-result-prefixes dans lequel on spécifie les différents préfixes à supprimer spéparé par des espaces.

    Voila.
    Guillaume

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] for-each imbriqué
    Par mouna201 dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 28/09/2010, 02h00
  2. [XSLT]for-each imbriqués, et autres galères...
    Par Sarrus dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 16/03/2006, 17h57
  3. [XSLT] for-each
    Par totoen dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 13/03/2006, 07h50
  4. [xslt] For-each dans template avec format XML (row)
    Par Steff1985 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/11/2005, 11h14
  5. [XSLT]for-each imbiqués
    Par Capt. Flame dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 24/10/2005, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo