Avatar billede rasmuzzen Nybegynder
04. september 2008 - 15:30 Der er 7 kommentarer og
1 løsning

Læse et element i XML

jeg har følgende xml fil

<RadioStreams>
  <Show name="P1">
    <low_qual_url>http://www.dr.dk/netradio/Metafiler/asx/dr_p1_32.asx</low_qual_url>
    <mid_qual_url>http://www.dr.dk/netradio/Metafiler/asx/dr_p1_64.asx</mid_qual_url>
    <high_qual_url>http://www.dr.dk/netradio/Metafiler/asx/dr_p1_128.asx</high_qual_url>
  </Show>
  <Show name="P2">
    <low_qual_url>http://www.dr.dk/netradio/Metafiler/asx/dr_p2_32.asx</low_qual_url>
    <mid_qual_url>http://www.dr.dk/netradio/Metafiler/asx/dr_p2_64.asx</mid_qual_url>
    <high_qual_url>http://www.dr.dk/netradio/Metafiler/asx/dr_p2_128.asx</high_qual_url>
  </Show>
</RadioStreams>

Jeg kan godt læse det ind i et dataset.
Kan også godt få fat i de rows der er i xlm filen.

Jeg kan ikke få fat i name "P1" "P2" osv.

1) Hvad kaldes disse i xml (elementer eller hvad),
2) Hvor står de hvis man laver en
foreach row in dataset

MVH
Avatar billede arne_v Ekspert
04. september 2008 - 15:37 #1
Var det ikke nemmere at laese den XML ind i et XmlDocument og saa
fiske data us med XPath (SelectNodes og SelectSingleNode) ?
Avatar billede arne_v Ekspert
04. september 2008 - 16:09 #2
XmlDocument doc = new XmlDocument();
            doc.Load(@"C:\data.xml");
            foreach(XmlNode n in doc.SelectNodes("//RadioStreams/Show"))
            {
                string name = n.SelectSingleNode("@name").Value;
                string mid_qual_url = n.SelectSingleNode("mid_qual_url/text()").Value;
                                // goer noget
            }
Avatar billede arne_v Ekspert
04. september 2008 - 16:10 #3
Man kan ogsaa bruge LINQ for XML, men XPath virker nu fint.
Avatar billede rasmuzzen Nybegynder
04. september 2008 - 18:16 #4
hmm. Name ligger på den 4 dimention i row'et (debug er en god ting).

Nå men dit lille code snippet skal da prøves, virker den er der point, og det gør den.

Smid et svar

PS. hvis nu du stopper med dine point lige nu vil det tage mig ca. 383 år at få det samme som dig, med alminde 5 point/dag tilvækst. Godt gået du gamle.
Avatar billede arne_v Ekspert
04. september 2008 - 18:40 #5
svar

Generelt er XPath godt til at fiske data ud af XML med.

Hvis nu du f.eks. ville fiske mid_qual_url for P2 saa:

string mid_qual_url = doc.SelectSingleNode("//RadioStreams/Show[@name='P2']/mid_qual_url/text()").Value;
Avatar billede rasmuzzen Nybegynder
04. september 2008 - 20:26 #6
Klar kode. Jeg har virkelig kikket meget kode igennem for at finde den rigtige syntax.

Tak
Avatar billede arne_v Ekspert
30. oktober 2008 - 02:27 #7
så mangler du bare at acceptere svaret
Avatar billede rasmuzzen Nybegynder
02. juli 2010 - 13:44 #8
Undskyld ventetiden, kunne ikke bruge dit svar til noget, men det er min egen skyld.

Jeg kender ikke stien indtil attributten jeg vil læse fandt jeg ud af. Retursvaret fra systemet er ikke kendt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester