Avatar billede charly Nybegynder
20. januar 2005 - 11:10 Der er 7 kommentarer og
1 løsning

Gennemløb af XML

Hej,

Jeg sidder og roder lidt med at læse fra en XML fil. Jeg har lavet et schema og en xmlfil, der har følgende struktur:

<SideSkabelon xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SideSkabelon.xsd">
<Sider>
  <SideID>Foerste</SideID>
  <SideIndhold>
    <MainTekst>Dette er den første blok</MainTekst>
    <SubTekst>Dette er Subtekst til den første blok</SubTekst>
  </SideIndhold>
</Sider>
<Sider>
  <SideID>Hvem</SideID>
  <SideIndhold>
    <MainTekst>Noget indhold til Hvem</MainTekst>
  </SideIndhold>
</Sider>
</SideSkabelon>

Mit spørgsmål er: Hvordan læser jeg løber jeg igennemdokumentet, hvis jeg eksempelvis gerne vil ha' data fra en bestemt SideID ud?

Jeg er med på, hvordan jeg indlæser xml og schema via en FileStream. Så denne del behøves ikke redegjort for ;-)

På forhånd tak.
Anders
Avatar billede arne_v Ekspert
20. januar 2005 - 11:17 #1
Du skal ikke brugen en FileStream, men læse det direkte ind i et XmlDocument
og f.eks. lave en SelectNodes.
Avatar billede arne_v Ekspert
20. januar 2005 - 11:18 #2
Avatar billede charly Nybegynder
20. januar 2005 - 11:24 #3
Smid et svar og du får de fortjente points.
Avatar billede arne_v Ekspert
20. januar 2005 - 11:26 #4
ok
Avatar billede charly Nybegynder
20. januar 2005 - 15:59 #5
Hej arne_v.

Jeg har lavet følgende kode til at lave et gennemløb af min xml-fil. Men hvad gør jeg nu, hvis jeg jeg kun ønsker at 'selecte' på en bestemt 'SideID?'

Håber du kan hjælpe?

      foreach (XmlNode element in elements)
        {
            XmlNodeList subelements = element.ChildNodes; 

            foreach (XmlNode subelement in subelements)
            {               
                if(subelement.HasChildNodes) {

                      XmlNodeList lastElements = subelement.ChildNodes;

                      foreach (XmlNode lastElement in lastElements)
                        {
                            if (lastElement.HasChildNodes)
                            {

                                TableRow indholdsRow = new TableRow();
                                TableCell indholdsCelle = new TableCell();

                                if (lastElement.Name.ToString() == "MainTekst")
                                {
                                    indholdsCelle.CssClass = "contents";
                                }
                                else
                                {
                                    indholdsCelle.CssClass = "subContents";
                                }

                                indholdsCelle.Controls.Add(new LiteralControl(lastElement.FirstChild.Value + " "));
                                indholdsRow.Cells.Add(indholdsCelle);
                                SideTabel.Rows.Add(indholdsRow);
                            }

                        }
                }
            }
        }
Avatar billede arne_v Ekspert
20. januar 2005 - 16:06 #6
Skal du have din XML over i en DataTable ?
Avatar billede charly Nybegynder
20. januar 2005 - 16:14 #7
Nej ikke umiddelbart.

Jeg kunne godt tænke mig at bygge min egen table op.

Jeg har iøvrigt forsøgt mig, med en datatable, men der kom min 'SubTekst' ikke med! Se xml format øverst.
Avatar billede arne_v Ekspert
20. januar 2005 - 19:26 #8
Fordi du kan læse direkte fra XML fil ind i et DataSet.
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