.Net Visual Basic und XML

Mel_One

Erfahrenes Mitglied
Hallo,
ich hoff, ich poste hier im richtigen Thema (hatte 3 zur Auswahl: Visual Basic, .Net und XML :) ).
Also, ich habe aktuell das Problem, dass ich aus einer XML-Datei eigentlich nur 2 Attribute auslesen möchte. Das gute Stück verweigert sich aber. Hier erst mal die Methode zum auslesen:

Code:
    Public Function GetKunden(Optional ByVal strColumnName As String = "Matchcode", Optional ByVal strColumnKto As String = "Kto", Optional ByRef objException As Exception = Nothing) As DataTable
        Dim objDataTable As New DataTable
        Dim objDataRow As DataRow
        Dim objXMLNodeList As XmlNodeList
        Dim objXMLNode As XmlNode

        objDataTable.Columns.Add(New DataColumn(strColumnName, Type.GetType("System.String")))
        objDataTable.Columns.Add(New DataColumn(strColumnKto, Type.GetType("System.String")))


        objXMLNodeList = Me.SelectNodes("//Config/KundenCollection/Kunde")

        For Each objXMLNode In objXMLNodeList
            Try
                objDataRow = objDataTable.NewRow()
                objDataRow(strColumnName) = objXMLNode.Attributes("Name").Value
                objDataRow(strColumnKto) = objXMLNode.Attributes("KundeKto").Value
                objDataTable.Rows.Add(objDataRow)


            Catch ex As Exception
                objException = ex
            End Try
        Next

        objDataTable.DefaultView.Sort = strColumnName

        Return objDataTable

    End Function

Und hier der XML-Code:

Code:
<?xml version="1.0" encoding="utf-8" ?>
<Config>
	<KundenCollection>
		<Kunde Name="Test" KundeKto="D067604">
			<B2B>
				<PurchaseOrders>
				</PurchaseOrders>
			</B2B>
		</Kunde>
	</KundenCollection>
</Config>

Problem: Das Attribut "Name" wird problemlos ausgelesen und in die DataRow gepackt. Das Attribut "KundeKto" bleibt jedoch leer. Kann sich das jemand erklären?
Greetings, Mel_One
 
Erst einmal Visual Basic Forum wäre auf jeden Fall das Falsche gewesen :D

2. Meiner meinung nach hättest du das Attribut nicht wie hier
http://www.w3schools.com/xml/xml_attributes.asp anlegen müssen ?
ich glaube nämlich dass die XML Routinen nach der Empfehlung von w3 arbeiten.
also
Code:
<?xml version="1.0" encoding="utf-8" ?>
<Config>
	<KundenCollection>
		<Kunde>
                       <Name>"Test"</Name>
                       <KundeKto>="D067604"</KundeKto>
			<B2B>
				<PurchaseOrders>
				</PurchaseOrders>
			</B2B>
		</Kunde>
	</KundenCollection>
</Config>


Grüsse bb
 
Hm, ja, das wäre wahrscheinlich netter und macht wahrscheinlich auch mehr Sinn. Leider bin ich da an Vorgaben vom Kunden gebunden, die das so festgelegt haben. Die haben da wohl schon was komplettes (irgendwie mehrere tausend Zeilen XML), die sie nicht mehr ändern wollen. Ich muss leider mit der XML-Datei leben.
 
Hm, okay, hat sich erledigt. Anscheinend hat Visual Studio die XML-Datei nicht richtig deployt. Somit ist der XML-Reader an eine veraltete XML-Datei gekommen, wo die KundeKto tatsächlich auf einen Leerstring gesetzt war. Blöd. Aber danke für die Mühe.
 

Neue Beiträge

Zurück