[c#] Hoe kan je een xml sorteren

Pagina: 1
Acties:
  • 228 views sinds 30-01-2008
  • Reageer

  • tsjaar
  • Registratie: December 2003
  • Laatst online: 24-03-2025
Ik heb al een poos gezocht op internet, maar ik kan niets vinden over hoe ik een xml document kan sorteren binnen c#. Is er iemand die dat wel weet?

Ik wil het binnen mijn programma sorteren, dus niet via een xsl. Iemand een idee?

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Hoe bedoel je sorteren?
Je kan natuurlijk de xml uitlezen de data sorteren en er weer een XMLDocument van maken. Voor de rest zijn er nog tal van mogenlijkheden door gebruik te maken van XMLDocument.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • davhor
  • Registratie: Mei 2003
  • Laatst online: 02-12-2025

davhor

www.fon.com

Wel erg summier opgeschreven wat je nu precies wilt hebben.

Ik zou zeggen zoek eens op google naar het volgende:

How to create a DataSet from XML with C# (of zoiets)

En daarna zoeken op:

How to sort a DataSet and use it!

Als je wat specifieker bent in het stellen van je vraag zal je ook specifieker antwoord krijgen.

FON - WiFi for Everyone | Flickr


  • tsjaar
  • Registratie: December 2003
  • Laatst online: 24-03-2025
Stel, je hebt een xml document als deze:

<Adressen>
--<Adres ID="1">
----<Naam>Jan</Naam>
----<Woonplaats>Groningen</Woonplaats>
--</Adres>
--<Adres ID="2">
----<Naam>Koos</Naam>
----<Woonplaats>Utrecht</Woonplaats>
--</Adres>
--<Adres ID="3">
----<Naam>Albert</Naam>
----<Woonplaats>Zwolle</Woonplaats>
--</Adres>
--<Adres ID="4">
----<Naam>Klaas</Naam>
----<Woonplaats>Amsterdam</Woonplaats>
--</Adres>
</Adressen>

(spaties werkt niet, dus ik hoop dat de streepjes het iets verduidelijken)


En die wil je dan gesorteerd uitlezen op naam of woonplaats (in een windows form bv) en eventueel gesorteerd opslaan.
Ik heb al de xmldocument members bekeken, maar kan daar niet iets in vinden wat mij erbij kan helpen. Ik heb al gedacht aan arrays, maar dat is te omslachtig.

  • davhor
  • Registratie: Mei 2003
  • Laatst online: 02-12-2025

davhor

www.fon.com

code:
1
2
3
4
5
6
7
8
DataSet ds = new DataSet();
ds.ReadXml(ApplicationPath + @"\flightplan.xml");
DataRow[] foundRows = ds.Tables[0].Select("","Woonplaats");

foreach(DataRow Gegevens in foundRows) 
{
Response.Write(Gegevens["Naam"].ToString())
}


Ongeveer in die richting

[ Voor 15% gewijzigd door davhor op 09-08-2004 14:41 ]

FON - WiFi for Everyone | Flickr


  • tech-no-logical
  • Registratie: December 2000
  • Laatst online: 22-05 23:11
met xpath zou 't moeten kunnen. check hier :

http://support.microsoft....aspx?scid=kb;en-us;318542

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 13:32
Waarom staan die gegevens in een XML document nog in de verkeerde volgorde? Je kunt het sorteren toch al doen als je de gegevens uit je database haalt?

  • whoami
  • Registratie: December 2000
  • Nu online
Als ik het zo begrijp, dan misgebruik jij een XML bestand als database ?

https://fgheysels.github.io/


  • tsjaar
  • Registratie: December 2003
  • Laatst online: 24-03-2025
whoami schreef op 09 augustus 2004 @ 15:19:
Als ik het zo begrijp, dan misgebruik jij een XML bestand als database ?
Dat is juist.... sorry. shame on me.

------
ik ga ff knutselen, bedankt voor de tips.

[ Voor 11% gewijzigd door tsjaar op 09-08-2004 16:33 ]


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
whoami schreef op 09 augustus 2004 @ 15:19:
Als ik het zo begrijp, dan misgebruik jij een XML bestand als database ?
Ik lees geen DB hoor, een stateless transformation lijkt me een zinnige en herbruikbare proces-stap.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Je haalt toch gewoon je data op en sorteerd deze dan zelf? Ik zie eigelijk het hele probleem niet, je kunt het daarna gesorteerd wegschrijven, maar dat vind ik een slechte oplossing. Als de gebruiker namelijk de sorteer volgorde of de criteria veranderd, klopt het weer niet meer en moet je weer gaan veranderen.

Maar het is gewoon te doen met een DataSet, mocht je de data in een ListView of iets dergelijks tonen, kun je ook in die control sorteren.
Pagina: 1