[C#][XML] Supereenvoudig maar geraak er niet uit... parsen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • tripkip
  • Registratie: Oktober 2008
  • Laatst online: 08-08 07:54
Hej iedereen,
ik heb in het verleden al eens een paar keer xml gebruikt, maar nu ben ik met een nieuw project bezig en ik geraak er maar niet uit... De xml scructuur ziet er als volgt uit:

XML:
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<woordenlijst name="mylist" xml:lang="en">
<woord>
<teken>&#24778;</teken>
<pinyin>ni</pinyin>
</woord>
<woord>
<teken>&#35880;&#40120;</teken>
<pinyin>ninini</pinyin>
</woord>


De bedoeling is dat het programma bij een klik op de knop een random <woord> neemt en hieruit de inhoud van het <teken> en het <pinyin> haalt.

Dit zal voor velen héél erg simpel zijn, voor mij niet, ik geraak er niet uit, ben er al 3u mee bezig 8)7

Alle hulp is welkom!

Twitter iCouchPotato


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 16-09 13:49

Patriot

Fulltime #whatpulsert

Wat heb je in die drie uur bereikt dan? We helpen je hier graag om fouten in scripts die je aan het schrijven te vinden, maar we zijn niet al te happig op het schrijven van complete scripts.

EDT:
Overigens, in het vervolg kun je je XML tussen code-tags zetten, dat verduidelijkt het allemaal aanzienlijk. Het is heel simpel gewoon [code=xml] en [/code] om je XML zetten.

[ Voor 34% gewijzigd door Patriot op 29-09-2009 23:01 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:56
Hoe heb je het nu proberen te doen ?
Heb je al eens naar de XmlTextReader class gekeken ?
Of beter nog, naar de mogelijkheden die .NET je biedt om mbhv Xpath de informatie uit een XML document te halen ? (XmlDocument class / CreateNavigator method bv ... )

https://fgheysels.github.io/


  • tripkip
  • Registratie: Oktober 2008
  • Laatst online: 08-08 07:54
ja ik heb xpath, dom en linq bekeken...
ik heb de XmlTextReader class bekeken, maar vind geen concrete manier om mijn manier te realiseren...

Twitter iCouchPotato


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:56
Toon dan eens wat je geprobeerd hebt, ipv gewoon te zeggen 'het lukt me niet' .... Vziw is het hier nog steeds niet de bedoeling dat alles voorgekauwd wordt, dus je zal zelf wel eerst eens even met wat meer info over de brug moeten komen (en tonen wat je al geprobeerd hebt).

Zoals ik al zei: XmlDocument heeft een CreateNavigator method; die returned een object waarop je xpath queries kunt loslaten, en mbhv xpath kan je toch gewoon de nodes uit het document halen waarin je geinteresseerd bent.

https://fgheysels.github.io/


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Ik zie niet welke .NET versie je gebruikt maar ruw in pseudo C# met LINQ (geen compiler bij de hand met .NET 3.5)
C#:
1
2
var wordList = woord in XDocument.Load("path naar xml").Descandants("woord")
                     select new {  Teken = woord.Element("teken"), Pinyin = woord.Element("pinyin") } 

En dan is je wordList een lijst van al je woorden, die je dan weer kan casten naar een List / array / wat je wilt :)

Going for adventure, lots of sun and a convertible! | GMT-8


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Het lijkt me makkelijker om eens te kijken naar de XMLNodeList en de XMLDocument. Daarin zitten properties als ItemOf, enumerators en weet ik wat.

Als je er dan nog niet uitkomt, lijkt me een basiscursus XML in .Net wel handig ;)

Sundown Circus


  • tripkip
  • Registratie: Oktober 2008
  • Laatst online: 08-08 07:54
Snake schreef op woensdag 30 september 2009 @ 09:47:
Ik zie niet welke .NET versie je gebruikt maar ruw in pseudo C# met LINQ (geen compiler bij de hand met .NET 3.5)
C#:
1
2
var wordList = woord in XDocument.Load("path naar xml").Descandants("woord")
                     select new {  Teken = woord.Element("teken"), Pinyin = woord.Element("pinyin") } 

En dan is je wordList een lijst van al je woorden, die je dan weer kan casten naar een List / array / wat je wilt :)
Lijkt me een goed idee, dan kan ik gemakkelijk random combinaties nemen uit de list!
kan je nog een tip geven ivm het casten naar een list? :9

Twitter iCouchPotato


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

tripkip schreef op woensdag 30 september 2009 @ 10:10:
[...]


Lijkt me een goed idee, dan kan ik gemakkelijk random combinaties nemen uit de list!
kan je nog een tip geven ivm het casten naar een list? :9
C#:
1
.ToList<JouwObjectMetDezelfdeProperties>()



Of (als het bovenstaande niet werkt):
C#:
1
2
3
4
5
6
7
8
9
10
class Word
{
   public string Teken { get; set; }
   public string Pinyin { get ; set; }
}
List<Word> myWordList = new List<Word>();
foreach(var word in wordList)
{
   myWordList.Add(new Word() { Teken = word.Teken,  Pinyin = word.Pinyin } );
}

Again: uit de losse hand ;)

Going for adventure, lots of sun and a convertible! | GMT-8


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 10-09 11:15
Als je een DOM hebt kan de XmlSerializer een goed idee zijn (tenzij je hele grote bestanden hebt).

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
tripkip schreef op woensdag 30 september 2009 @ 10:10:
[...]
kan je nog een tip geven ivm het casten naar een list? :9
volgens mij is je type nu IQueryable<T>, waarbij T een anonymous type is. Die kun je gewoon casten naar IList<T>, of uberhaupt gewoon al over itereren.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Grijze Vos schreef op woensdag 30 september 2009 @ 12:52:
[...]

volgens mij is je type nu IQueryable<T>, waarbij T een anonymous type is. Die kun je gewoon casten naar IList<T>, of uberhaupt gewoon al over itereren.
IEnumerable<Anonymous`Type1> om precies te zijn :)

Going for adventure, lots of sun and a convertible! | GMT-8

Pagina: 1