Question Besoin d'aide extraction xml

Plus d'informations
il y a 16 ans 6 mois #5270 par Gabriel
Bonjour a toutes et tous

j'ai un besoin evidement urgent... j'ai besoin d'extraire d'un fichier XML 3 champs pour en faire un csv. Tous les exemples que j'ai trouvé de manipulation xml s'arrete a 2 \"niveaux\" genre
[code:1]<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<rss version=\"2.0\" xmlns:g=\"base.google.com/ns/1.0\">;
<channel>
<title>fiddlels - Amazon Store</title>
<description>Selected books and music</description>
&lt;link&gt;s1.amazon.com/exec/varzea/ts/customer-op...-9123145</link>;
&lt;item&gt;
&lt;title&gt;Discovering music: A course in music appreciation (War Department Education...&lt;/title&gt;
&lt;description&gt;Discovering music: A course in music appreciation (War Department Education...&lt;/description&gt;
&lt;link&gt;www.amazon.com/gp/offer-listing/B0007HWG...XBWOFOWV</link>;
&lt;g:id&gt;0529B017861&lt;/g:id&gt;
&lt;g:image_link&gt;&lt;/g:image_link&gt;[/code:1]

mais pas d'exemple sur + de profondeur et malgré mes essais je n'arrive pas vraiment a descendre ... et donc recuperer mon infos (en piece jointe un fichier exemple qui est un extract d'une base Office communicator...) mais voici un petit extrait
[code:1]&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;utf-8\&quot;?&gt;
&lt;HomedResources xmlns=\&quot;schemas.microsoft.com/RtcServer/2002/11/dbimpexp\"; Version=\"21\">
&lt;HomedResource UserAtHost=\&quot;daffy.duck@msocs.local\&quot; Enabled=\"1\" RichMode=\"1\" VersionContact=\"7\" VersionPermission=\"1\" xmlns=\"schemas.microsoft.com/RtcServer/2002/11/dbimpexp\">;
&lt;ContactGroups&gt;
&lt;ContactGroup Number=\&quot;1\&quot; DisplayName=\&quot;~\&quot; /&gt;
&lt;/ContactGroups&gt;
&lt;Contacts&gt;
&lt;Contact Buddy=\&quot;bugs.bunny@msocs.local\&quot; SubscribePresence=\"1\" Groups=\"1\" />
&lt;Contact Buddy=\&quot;pepe.thepew@msocs.local\&quot; SubscribePresence=\"1\" Groups=\"1\">
&lt;ContactExtension&gt;&lt;![CDATA[&lt;contactSettings contactId=\&quot;f6ed7389-ed9f-49fc-8adc-e7c525d9d051\&quot; &gt;&lt;/contactSettings&gt;
]]&gt;&lt;/ContactExtension&gt;
&lt;/Contact&gt;
&lt;Contact Buddy=\&quot;will.e.coyote@msocs.local\&quot; SubscribePresence=\"1\" Groups=\"1\" />
&lt;/Contacts&gt;
&lt;Containers&gt;
&lt;Container AuthMask=\&quot;0\&quot; Version=\&quot;0\&quot; ContainerNumber=\&quot;0\&quot; Everyone=\&quot;1\&quot;&gt;
&lt;Publication CategoryName=\&quot;contactCard\&quot; InstanceNum=\&quot;0\&quot; Version=\&quot;5\&quot; LastPubTime=\&quot;2009-06-30T11:49:32.530\&quot; PrevPubTime=\&quot;2009-05-28T10:10:59.437\&quot;&gt;
&lt;Data&gt;
&lt;contactCard xmlns=\&quot;schemas.microsoft.com/2006/09/sip/contactcard\">;
&lt;identity&gt;
&lt;name&gt;
&lt;displayName&gt;
Daffy Duck&lt;/displayName&gt;
&lt;/name&gt;
&lt;/identity&gt;
&lt;/contactCard&gt;
&lt;/Data&gt;
&lt;/Publication&gt;
&lt;/Container&gt;[/code:1]

j'ai besoin de recuperer les valeurs pour chaque utilisateur leur adresse SIP, leur nom complet et si ils sont actif ou non
les \&quot;champs\&quot; XML sont:
Les 2 champs suivants ne me pose pas de problemes
  • HomedResources/HomedResource/UserAtHost
  • HomedResources/HomedResource/Enabled
c'est cette valeur qui me pose probleme
  • HomedResources/HomedResource/Containers/Container/Publication/Data/contactCard/identity/name/displayName

on doit avoir comme resultat (par exemple)
  • UserAtHost: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
  • Enabled: 1 (ou 0)
  • displayName: Daffy Duck

le 3eme champs est plus compliqué car il apparait plusieurs fois HomedResources/HomedResource/Containers/Container apparait 6 fois, et dedans on a le champs displayName. Pour chaque @ SIP dans l'arborescence on a 6 fois le displayName...

Si un expert powershell/XML pouvait m'aider...:)

La pièce jointe small_contacts.txt est absente ou indisponible

<br><br>Message édité par: tonic8, à: 8/09/09 13:58
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 6 mois #5271 par Laurent Dardenne
Salut,
tonic8 écrit:

le 3eme champs est plus compliqué car il apparait plusieurs fois HomedResources/HomedResource/Containers/Container apparait 6 fois, et dedans on a le champs displayName. Pour chaque @ SIP dans l'arborescence on a 6 fois le displayName...

De ce que j'ai compris, pour chaque occurence du nom dans Containers c'est tjrs le même, il me semble qu'il s'agit d'une duplication d'information. Faut regarder le XSD.

Tu peux déjà étudier si XPath peut être utile, un exemple ici , mais peut être pas exploitable dans l'urgence :(

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.056 secondes
Propulsé par Kunena