Problem beim verarbeiten von XML-Datei (mehrere Stammelemente)

E

EightBitWitch

Hallo,

ich habe ein kleine Problem beim verarbeiten eine XML-Datei. Auf die Zusammensetzung der XML-Daten habe ich keinerlei Einfluss und muss sie so nehmen wie sie sind.

Das Problem ist, das es keine Ur-Element gibt wie hier
<Meine Bücher>
<Buch>
<Titel>Mein erstes Buch</Titel>
</Buch>
</Meine Bücher>


sondern nur
<Name1>
<![CDATA[Lieschen Müller]]
</Name1>
<Name2>
<![CDATA[Lieschen Meier]]
</Name2>
<Name3>
<![CDATA[Lieschen Schulz]]
</Name3>

und davon eine ganze Menge.

Beim Versuch diese Daten zu folgt einzulesen

Dim XMLDoc As New XmlDocument
XMLDoc.Load("http://www.irgendwas.de/text.xml")

bekomme ich die Fehlermeldung "Es sind mehrere Stammelemente vorhanden"

Kann ich das irgendwie umschiffen, so das ich diese Daten doch per XML-Fahäigleiten von .net einlesen kann?

Es ist das erste Mal, das ich mich unter VB/-Net mit XML beschäftigen und stehe echt auf dem Schlauch.


Vielen Dank in voraus
 
Moin,

von NET habe ich keine Ahnung, aber wenn du den Inhalt dieser XML-Datei als String abholst, sollte es per XMLDoc.LoadXML() möglich sein, das ganze als XMLDocument zu verarbeiten...musst halt nur noch ein Root-Element um den String herum packen.
 
Danke, genau so habe ich es gemacht.


Nun habe ich allerdings ein neues Problem:
Die XML-Datei ist in UTF-8 und ich brauche diese Daten aber als Unicode, oder zumindest so, das die Umlaute korrekt dargestellt werden.

"Präventiv" soll dann zu "Präventiv"

Irgendwie finde ich keine einfache Encoding Methode, nur etwas mit Byte-Arrays, was ich im Moment nicht so richtig verstehe.
 
Wie öffnest du denn die Datei? Wenn du die Datei über die die Klasse File öffnest kannst du bei den entsprechenden Methode auch das Encoding angeben.
 
Ich lade die Datei per

Dim WC As New WebClient
Dim Text As String = WC.DownloadString("http://www.irgendwas.de/test.xml")

von einem HTTP-Server runter
 
Hi

Du kannst das Encoding über das entsprechende Property der WebClient-Klasse ändern.
Alternative, wenn das nicht geht:
Per DownloadFile die Datei komplett laden und lokal mit oben genannter Variante öffnen.
Oder noch besser: Dem, der dieses Xml generiert auf die Finger hauen, dass er es richtig macht.
 
Danke, über die Encoding-Eigenschaft des WebClient geht es. Ich habe das einfach übersehen.
 
Zurück