Question Fusionner deux XML

Plus d'informations
il y a 12 ans 10 mois #14820 par Texier
Fusionner deux XML a été créé par Texier
Bonjour :)

Je viens vous demander votre aide :unsure:

Donc petit résumé, j'ai un script avec une interface powershell qui me charge deux fichiers XML. Il m'affiche plusieurs informations dans plusieurs datagirdview. J'ai un XML qui contient tous les départements et un deuxième qui contient des informations d'agence.

J'ai réussi a naviguer et modifier les informations des agences, mais je veux aussi pouvoir en ajouter et en supprimé...

J'ai pensé de créer un shémas de création

(Voici un exemple):

\" <Parameter class=\"P_GeoSite\"> <Attribute name=\"Name\">GeoSite_0000</Attribute> <Attribute name=\"Owner\">Nothing</Attribute> </Parameter> \"

aprés l'avoir completer avec les nouvelles informations.

Je voudrais l'ajouter au XML des agences

J'ai regardé un peu partous sur le net sans trouver une réponse :/

Le fichier xml agence ressemble a sa :

<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?> <Settings> <Parameter class=\"P_GeoSite\"> <Attribute name=\"Name\">GeoSite_0000</Attribute> <Attribute name=\"Owner\">Nothing</Attribute> <Attribute name=\"View\" /> </Parameter> <Parameter class=\"P_GeoSite\"> <Attribute name=\"Name\">GeoSite_0101</Attribute> <Attribute name=\"Owner\">Nothing</Attribute> <Attribute name=\"View\"> </Parameter> </Settings>

Merci d'avance.

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

Plus d'informations
il y a 12 ans 10 mois #14825 par SiSMik
Réponse de SiSMik sur le sujet Re:Fusionner deux XML
Salut,

Je ne comprends pas trop la demande.

Je voudrais l'ajouter au XML des agences


ça veut pas dire grand chose, car sinon il suffit de faire un add-content -append et le tour est joué.

Sinon tu peux repenser le XML en tant qu'objet et là tu peux commencer à faire mumuse.
Je ne suis pas un spécialiste du XML, (et c'est peu dire) mais j'aurais plutôt travaillé mon schéma comme ceci

[code:1] $template = @'<Parameter>
<Name></Name>
<Owner></Owner>
</Parameter>
'@ [/code:1]

Ensuite, tu charges le schéma dans un XML vide

[code:1]$template | Out-File $XMLFile -encoding UTF8[/code]

et tu load le schéma vide

[code:1]$xml = [xml](Get-Content $XMLFile)[/code]

[code:1]
#chargement du premier XML à fusionner
$XML1 = $ [XML](Get-Content $XMLFile1)[/code:1]

[code:1]
$XML1 | % {
# On realise un clone de la branche vide
$NewParameter = (@($xml.Parameter)[0]).Clone()

# On prend les infos du XML1
# On les envois dans un clone de paramètre vide
$NewParameter = $NewParameter.clone()
$NewParameter.Name = $_.Name
$NewParameter.Owner = $_.Owner

# On passe au paramètre suivant
$xml.DocumentElement.AppendChild($NewParameter) > $null
}

# On vire le template vide
$xml.Parameter | ? { $_.Name -eq \"\" } | % { [void]$xml.DocumentElement.RemoveChild($_) }

[/code:1]

Voilà le principe, j'espère que ça va t'éclairer un peu !

@+<br><br>Message édité par: benduru, à: 14/05/13 13:59

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

Plus d'informations
il y a 12 ans 10 mois #14829 par Texier
Réponse de Texier sur le sujet Re:Fusionner deux XML
Je peux pas changer la forme du XML :unsure:

Car elle m'est imposser.

Oui je sais sa peux parraitre assez bizarre ^^

Bon je vais voir avec se que tu ma donnée si je peux pas me l'arranger.

Je t'en remercie :) bonne journée<br><br>Message édité par: Darkphenix, à: 14/05/13 14:20

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

Plus d'informations
il y a 12 ans 10 mois #14831 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Fusionner deux XML
Salut,
un autre exemple , à adapter, basé sur le pipeline et autorisant la fusion de plusieurs fichiers XML utilisant le même schémas.

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 10 mois #14833 par Texier
Réponse de Texier sur le sujet Re:Fusionner deux XML
Merci Laurent, c'est se que je chercher :)

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

Plus d'informations
il y a 12 ans 10 mois #14836 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Fusionner deux XML
Darkphenix écrit:

Merci Laurent, c'est se que je chercher

N'oublie pas \&quot;un autre exemple, à adapter\&quot;.

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