Question
Manipuler du xml pour obtenir des infos
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 14 ans 8 mois #10152
par Gabriel
Manipuler du xml pour obtenir des infos a été créé par Gabriel
bonjour
je recupere une string XML de l'ad (dans une prorpiete de d'un objet pour office communicator) et j'aimerais recuperer une valeur
voila la chaine xml en question (mise en forme pour etre lisible, sionon c'est une seule ligne
[code:1]<instance>
<property name=\"Name\"><![CDATA[test]]></property>
<property name=\"AllowIPVideo\"><![CDATA[false]]></property>
<property name=\"AllowIPAudio\"><![CDATA[false]]></property>
<property name=\"ColorDepth\"><![CDATA[256]]></property>
<property name=\"AllowAppSharingForExternalMeeting\"><![CDATA[SingleApplication]]></property>
<property name=\"RetainPPTForExternalMeeting\"><![CDATA[false]]></property>
<property name=\"MeetingSize\"><![CDATA[35]]></property>
<property name=\"EnableDataCollaboration\"><![CDATA[false]]></property>
<property name=\"AllowPresenterToRecord\"><![CDATA[false]]></property>
<property name=\"AllowPresenterToDelegateRecording\"><![CDATA[false]]></property>
<property name=\"EnablePSTNConferencing\"><![CDATA[false]]></property>
<property name=\"TrustedConferencingPinRequired\"><![CDATA[false]]></property>
<property name=\"EnableAppDesktopSharing\"><![CDATA[false]]></property>
</instance>[/code:1]
j'ai essayer de la mettre dans une variable en specifiant que c'est du xml
[code:1]
[xml]$xml = get-content toto.xml[/code:1]
$xml a une propriete \"instance\" si je fait $xml.instance je vois alors une propriete \"property\" contenant l'ensemble des valeurs property mais pas moyen de chopper l'info qui m'interesse : EnableAppDesktopSharing = False...
Merci d'avance.<br><br>Message édité par: tonic8, à: 30/08/11 17:08
je recupere une string XML de l'ad (dans une prorpiete de d'un objet pour office communicator) et j'aimerais recuperer une valeur
voila la chaine xml en question (mise en forme pour etre lisible, sionon c'est une seule ligne
[code:1]<instance>
<property name=\"Name\"><![CDATA[test]]></property>
<property name=\"AllowIPVideo\"><![CDATA[false]]></property>
<property name=\"AllowIPAudio\"><![CDATA[false]]></property>
<property name=\"ColorDepth\"><![CDATA[256]]></property>
<property name=\"AllowAppSharingForExternalMeeting\"><![CDATA[SingleApplication]]></property>
<property name=\"RetainPPTForExternalMeeting\"><![CDATA[false]]></property>
<property name=\"MeetingSize\"><![CDATA[35]]></property>
<property name=\"EnableDataCollaboration\"><![CDATA[false]]></property>
<property name=\"AllowPresenterToRecord\"><![CDATA[false]]></property>
<property name=\"AllowPresenterToDelegateRecording\"><![CDATA[false]]></property>
<property name=\"EnablePSTNConferencing\"><![CDATA[false]]></property>
<property name=\"TrustedConferencingPinRequired\"><![CDATA[false]]></property>
<property name=\"EnableAppDesktopSharing\"><![CDATA[false]]></property>
</instance>[/code:1]
j'ai essayer de la mettre dans une variable en specifiant que c'est du xml
[code:1]
[xml]$xml = get-content toto.xml[/code:1]
$xml a une propriete \"instance\" si je fait $xml.instance je vois alors une propriete \"property\" contenant l'ensemble des valeurs property mais pas moyen de chopper l'info qui m'interesse : EnableAppDesktopSharing = False...
Merci d'avance.<br><br>Message édité par: tonic8, à: 30/08/11 17:08
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 226
- Remerciements reçus 0
il y a 14 ans 8 mois #10154
par Arthur
Réponse de Arthur sur le sujet Re:Manipuler du xml pour obtenir des infos
Salut
J'ai fait un truc similaire en C# que j'ai mis en powershell:
[code:1]$string = '
<instance>
<property name=\"Name\"><![CDATA[test]]></property>
<property name=\"AllowIPVideo\"><![CDATA[false]]></property>
<property name=\"AllowIPAudio\"><![CDATA[false]]></property>
<property name=\"ColorDepth\"><![CDATA[256]]></property>
<property name=\"AllowAppSharingForExternalMeeting\"><![CDATA[SingleApplication]]></property>
<property name=\"RetainPPTForExternalMeeting\"><![CDATA[false]]></property>
<property name=\"MeetingSize\"><![CDATA[35]]></property>
<property name=\"EnableDataCollaboration\"><![CDATA[false]]></property>
<property name=\"AllowPresenterToRecord\"><![CDATA[false]]></property>
<property name=\"AllowPresenterToDelegateRecording\"><![CDATA[false]]></property>
<property name=\"EnablePSTNConferencing\"><![CDATA[false]]></property>
<property name=\"TrustedConferencingPinRequired\"><![CDATA[false]]></property>
<property name=\"EnableAppDesktopSharing\"><![CDATA[false]]></property>
</instance> '
$XML = New-Object \"System.Xml.XMLDocument\"
$XML.LoadXml($string)
$node=$XML.SelectNodes(\"//property[@name=\"\"EnableAppDesktopSharing\"\"]\"«»)
($node.Item(0)).name
($node.Item(0)).'#cdata-section'[/code:1]<br><br>Message édité par: bilbao, à: 30/08/11 18:52
J'ai fait un truc similaire en C# que j'ai mis en powershell:
[code:1]$string = '
<instance>
<property name=\"Name\"><![CDATA[test]]></property>
<property name=\"AllowIPVideo\"><![CDATA[false]]></property>
<property name=\"AllowIPAudio\"><![CDATA[false]]></property>
<property name=\"ColorDepth\"><![CDATA[256]]></property>
<property name=\"AllowAppSharingForExternalMeeting\"><![CDATA[SingleApplication]]></property>
<property name=\"RetainPPTForExternalMeeting\"><![CDATA[false]]></property>
<property name=\"MeetingSize\"><![CDATA[35]]></property>
<property name=\"EnableDataCollaboration\"><![CDATA[false]]></property>
<property name=\"AllowPresenterToRecord\"><![CDATA[false]]></property>
<property name=\"AllowPresenterToDelegateRecording\"><![CDATA[false]]></property>
<property name=\"EnablePSTNConferencing\"><![CDATA[false]]></property>
<property name=\"TrustedConferencingPinRequired\"><![CDATA[false]]></property>
<property name=\"EnableAppDesktopSharing\"><![CDATA[false]]></property>
</instance> '
$XML = New-Object \"System.Xml.XMLDocument\"
$XML.LoadXml($string)
$node=$XML.SelectNodes(\"//property[@name=\"\"EnableAppDesktopSharing\"\"]\"«»)
($node.Item(0)).name
($node.Item(0)).'#cdata-section'[/code:1]<br><br>Message édité par: bilbao, à: 30/08/11 18:52
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 226
- Remerciements reçus 0
il y a 14 ans 8 mois #10155
par Arthur
Réponse de Arthur sur le sujet Re:Manipuler du xml pour obtenir des infos
C'est assez marrant d’ailleurs de voir que powershell bug un peu, avec la méthode \"Get-Member\" sur $node on obtient un \"XmlElement\" alors que la méthode \"SelectNodes\" retourne un objet de type \"XmlNodeList\" et même en forçant le type sur \"XmlNodeList\" il met toujours \"XmlElement\", pourtant on ne peux utiliser que les méthodes de \"XmlNodeList\".
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 14 ans 8 mois #10156
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Manipuler du xml pour obtenir des infos
Salut,
on peut simplifier, tout du moins réduire la saisie :
[code:1]
$XML = New-Object \"System.Xml.XMLDocument\"
$XML.LoadXml($string)
[/code:1]
en
[code:1]
[xml]$XML=$string
[/code:1]
bilbao écrit:
[code:1]
$node|gm
gm -InputObject $node
#d'où
$node=$XML.SelectNodes('//property[@name=\"EnableAppDesktopSharing\"]')|% {$}
#POUR cet exemple on récupère 1 seul élément
$node.name
$node.'#cdata-section'
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 31/08/11 21:31
on peut simplifier, tout du moins réduire la saisie :
[code:1]
$XML = New-Object \"System.Xml.XMLDocument\"
$XML.LoadXml($string)
[/code:1]
en
[code:1]
[xml]$XML=$string
[/code:1]
bilbao écrit:
Je ne pense pas que ce soit un bug :C'est assez marrant d’ailleurs de voir que powershell bug un peu
[code:1]
$node|gm
gm -InputObject $node
#d'où
$node=$XML.SelectNodes('//property[@name=\"EnableAppDesktopSharing\"]')|% {$}
#POUR cet exemple on récupère 1 seul élément
$node.name
$node.'#cdata-section'
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 31/08/11 21:31
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 14 ans 8 mois #10158
par Gabriel
Réponse de Gabriel sur le sujet Re:Manipuler du xml pour obtenir des infos
Bilbao/Laurent
merchi, je vais bien m'amuser
ca debloque un poil ma situation...
merchi, je vais bien m'amuser
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.041 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Manipuler du xml pour obtenir des infos