XML auslesen

22/01/2009 - 18:06 von Tamara Mikes | Report spam
Salü alle zusammen

Bin gerade mal wieder am verzweifeln. Dachte das wàre so einfach... habe ein XML wie
folgt:

<Sprache>
<en>
<Adresse>Rue Nautilus</Adresse>
</en>
<de>
<Adresse>Fischweg 12</Adresse>
</de>
<fr>
</fr>
</Sprache>

Ich möchte nun den Fischweg lesen. Dazu habe ich folgendes gemacht

x.ReadStartElement("Sprache");
x.ReadStartElement("de");
string vInfo = x.ReadString();
x.Read();
x.ReadStartElement("Adresse");
string vAdresse = x.ReadString();


Aber er steht mir beim StartElement("de") still und sagt, dass er das nicht finden kann.
en hingegen findet er.

Was muss ich machen, damit ich an Fischweg 12 ran komme?

Vielen Dank für Hinweise
Gruss Tamara
 

Lesen sie die antworten

#1 Martin Honnen
22/01/2009 - 18:28 | Warnen spam
Tamara Mikes wrote:

<Sprache>
<en>
<Adresse>Rue Nautilus</Adresse>
</en>
<de>
<Adresse>Fischweg 12</Adresse>
</de>
<fr>
</fr>
</Sprache>

Ich möchte nun den Fischweg lesen.



Muss es denn XmlReader sein? Per XPath geht das doch viel einfacher:
XPathDocument doc = new XPathDocument("file.xml");
XPathNavigator ad =
doc.CreateNavigator().SelectSingleNode("Sprache/de/Adresse");
if (ad != null)
{
string vAdresse = ad.Value;
}

Oder in .NET 3.5 per LINQ to XML:
string vAdresse =
XElement.Load("file.xml").Element("de").Element("Adresse").Value;



Aber er steht mir beim StartElement("de") still und sagt, dass er das nicht finden kann.




Wenn es wirklich per XmlReader gelöst werden soll:

using (XmlReader reader =
XmlReader.Create(@"..\..\XMLFile1.xml"))
{
reader.MoveToContent();
if (reader.ReadToDescendant("de"))
{
if (reader.ReadToDescendant("Adresse"))
{
string vAdresse = reader.ReadElementString();
Console.WriteLine(vAdresse);
}
}
}

Martin Honnen MVP XML
http://JavaScript.FAQTs.com/

Ähnliche fragen