XML: Datei einlesen und auf vorhandenen Knoten prüfen

08/04/2008 - 20:07 von Maxi | Report spam
Hallo,

ich bin glaube bald zu blöd zum interpretieren der Online-Hilfe und
bràuchte dazu etwas Hilfe von Euch.

Folgende geistreiche Datei sei mal gegeben:
<Abschnitt1>
<Ordner id="Gruppe1" name="c:\test1" />
<Ordner id="Gruppe2" name="c:\test2" />
<Datei id="Text1" name="text1.txt" />
<Datei id="Text2" name="text2.txt" />
<Ordner id="Gruppe11" name="c:\test1\test11" />
</Abschnitt1>

Ich möchte nun prüfen ob es in der XML-Datei den Knoten "Abschnitt1"
gibt und wenn ja alle Items des Abschnitt1 einlesen und in ein Array
einlesen damit ich nach dem einlesen dieses abarbeiten kann.

Ich habe versucht mit MoveToContent() etc zu arbeiten, aber ich komme
nicht zum ziel, er erkennt den Knoten einfach nicht.

Wie kann ich das mit dem XmlReader einlesen? Ich komme echt nicht
drauf, ist sicher einfach, aber wohl nicht einfach genug :-(

Wàre für Eure Hilfe sehr dankbar.

Gruss,
Maxi
 

Lesen sie die antworten

#1 Martin Honnen
09/04/2008 - 13:32 | Warnen spam
Maxi wrote:

Wie kann ich das mit dem XmlReader einlesen?




Hier ist ein Beispiel für XmlReader:

Using reader As XmlReader = XmlReader.Create("..\..\XMLFile1.xml")
While reader.Read()
If reader.NodeType = XmlNodeType.Element And
reader.Name = "Abschnitt1" Then
Console.WriteLine("Processing {0}:", reader.Name)
While Not (reader.NodeType = XmlNodeType.EndElement
And reader.Name = "Abschitt1") And reader.Read()
If reader.NodeType = XmlNodeType.Element Then
Console.WriteLine("Processing {0}:",
reader.Name)
If reader.HasAttributes Then
While reader.MoveToNextAttribute()
Console.WriteLine("Attribute named
'{0}' has value '{1}'.", reader.Name, reader.Value)
End While
End If
Console.WriteLine()
End If
End While
Console.WriteLine()
End If

End While
End Using

Beachte aber, dass man wesentlich komfortabler mit
XPathDocument/XPathNavigator oder mit XmlDocument arbeiten kann. Mit
.NET 3.5 gibt es auch LINQ to XML.




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

Ähnliche fragen