PowerShell XML sort podla elementov/atributov

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod trsek 30. 9. 2015 12:29

Potrebujem XML subor otvorit usporiadat v nom Elementy podla kluca "id" a ulozit.
V C# je to takto:

Kód: Vybrat vše
XDocument doc = XDocument.Load("input.xml");
XDocument sortedDoc = Sort(doc, 0, "id", 1);

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = false;
settings.Indent = true;

XmlWriter writer = XmlWriter.Create("output.xml", settings);
writer.sortedDoc.WriteTo(writer);


O podobne riesenie sa pokusam v PowerShell, ale chybaju mi zaklady (priznavam). S pomocou google som dal dohromady zaklad takto. Chyba mi tam rutina pre ten sort:

Kód: Vybrat vše
# Open XML file
[xml]$xml = Get-Content "input.xml"

# Sort
???

# Write some XML
$xml.Save("output.xml");
Programy zadania z Pascalu?
trsek
Junior
Uživatelský avatar

Odeslat příspěvekod mracka michal 2. 10. 2015 05:35

Co ti brani pouzit v PowerShelli povodne c# riesenie?

Kód: Vybrat vše
$doc = [System.Xml.Linq.XDocument]::Load("input.xml")

# load assembly ktora obsahuje Sort
Add-Type -Assembly "kvalifikovany nazov assembly"

...
„You don't need a reason to help people.”
~Zidane Tribal, Final Fantasy IX
--
Pouzivam suborovy manazer Nomad.Net.
mracka michal
Junior
Uživatelský avatar

Odeslat příspěvekod mracka michal 5. 10. 2015 06:45

Oprava. Aj tu linq assembly treba loadnnut:
Kód: Vybrat vše
# load assembly s XML.Linq triedami
Add-Type -Assembly System.Xml.Linq

$doc = [System.Xml.Linq.XDocument]::Load("input.xml")

# load assembly ktora obsahuje Sort
Add-Type -Assembly "kvalifikovany nazov assembly"

...
mracka michal
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků