XMLReader Daten sind NOTHING

20/09/2009 - 16:58 von Harald Bacik | Report spam
Hallo

Ich habe eine XML Datei, die wie folgt aussieht:
<?xml version="1.0" encoding="utf-8"?>
<Lagerdaten>
<Zuordnung>01</Zuordnung>
<InvNr>4</InvNr>
<Lieferant>2</Lieferant>
<ArtikelNr>CLIP</ArtikelNr>
<Groesse />
<Farbe />
<Artikelbezeichnung>Sonnenclipp</Artikelbezeichnung>
<Menge>1</Menge>
</Lagerdaten>

Ich versuche die Daten mit folgendem Code einzulesen:

Dim xmlReaderSettings As New Xml.XmlReaderSettings
xmlReaderSettings.ValidationType = Xml.ValidationType.Schema
xmlReaderSettings.ValidationFlags Xml.Schema.XmlSchemaValidationFlags.ReportValidationWarnings
Dim Stream As New
System.IO.MemoryStream(DirectCast(e.Row.Cells("Zugang").Value, Array))
Using xmlReader As Xml.XmlReader = Xml.XmlReader.Create(Stream,
xmlReaderSettings)
While (xmlReader.Read())
If xmlReader.IsStartElement = False Then
Select Case xmlReader.Name
Case = "InvNr"
MessageBox.Show(xmlReader.Value)
End Select
End If
End While
End Using

Also, der XMLReader.Name wird ausgelöst & die MessageBox wird gezeigt,
doch deren Inhalt ist leer?
Warum ist das so? - Was mache ich dabei falsch?

DANKE im Voraus
Harald
 

Lesen sie die antworten

#1 Christoph Schneegans
20/09/2009 - 17:19 | Warnen spam
Harald Bacik schrieb:

If xmlReader.IsStartElement = False Then
Select Case xmlReader.Name
Case = "InvNr"
MessageBox.Show(xmlReader.Value)



Damit steht der Reader auf dem schließenden Tag des "InvNr"-
Elements. Dort gibt es natürlich keinen Wert. Ich würde das so
machen:

Select Case xr.NodeType
Case XmlNodeType.Element
Select Case xr.Name
Case "InvNr"
MessageBox.Show(xr.ReadString)
End Select
End Select

<http://schneegans.de/sv/> · Schema-Validator für XML

Ähnliche fragen