Wie kann ich XML daten mit vb auslesen?

Ich möchte über eine tcp/ip Verbindung xml-Daten dieser art Austauschen und anschließend Die Daten komfortabel auslesen:

MustermannMaxMusterstraße 1
01234/5678909876/54321

Wie kann ich die eizelnen Werte komfortabel Auslesen?

Hi,

ich denke die Kommunikation erfolgt über einen Socket?
Hier ist mal ein Beispiel http://social.msdn.microsoft.com/forums/en-US/csharp… , zwar C# abe rläßt sich ja leicht übersetzen.
Ein Socket Stream ist immer ein Byte Array, daraus einen String machen und den Sting in ein XMLDocument einlesen - und schon kann das Dokument mit den üblichen Befehlen (XPath oder was auch immer) ausgelesen werden.

Gruß

Andre

Hi,

wäre die Frage offen ob sich dieser XML Knoten noch in einer großen Datei befindet oder ob du ihn einzeln bearbeiten und speichern möchtest.

Was Dir auf jeden Fall weiterhilft sind das XDocument, das XElement und XPath.

Das dein Beispiel könnte man als
XElBeispielknoten as XElement = _
MustermannMaxMusterstraße 1
01234/5678909876/54321

definieren. Dann kannst du über XElBeispielknoten.Element(„NAME“).value die einzelnen Werte abrufen bzw schreiben!

http://msdn.microsoft.com/de-de/library/system.xml.l…

Aus einer Datei laden könntest du die XML so:

XElBeispielknoten = XElement.load(„C:…“)

Hoffe das ich Dir ein wenig helfen konnte, sonst kannst Du ja gerne noch mal fragen. Über ein positives Feedback freue ich mich natürlich auch.

Gruß

Marko

Danke euch beiden werde ich mal Ausprobieren ich melde mich wenn ich weiß obs funktioniert

ich habe einmal das ganze durchdacht (und mir den Link von Marko angesehen. Dabei ist die Frage aufgekommen, Wie ich die jeweils 2. 3. usw. Knoten auslesen kann, die mehrere Instanzen mit dem selben namen haben(z.b. oder ) wie mache ich das? (ich habe noch nie mit XML in vb gearbeitet)

Imports System.Xml
Imports System.Xml.Linq
Imports System.Xml.XPath

Public Class Form1

Public XDoAlleAdressen As XDocument = _

<?xml version="1.0" encoding="utf-8" standalone="yes"?>MustermannMaxMusterstraße 101234/5678909876/54321MeierLudgerDrosselweg 102233/522909876/5789MeierHubertDerweg 2302922/995602921/15664

‚‘’
‚‘’ Sucht nach dem uebergebenen Namen (muss ganz übereinstimmen)
‚‘’
‚‘’
‚‘’
‚‘’
Public Function getAdressByName(ByVal NameInput As String) As List(Of XElement)
'durchsucht alle ENTRY und gibt die zurueck bei denen der Eingegebene Name stimmt(der Ausdruck ist in LINQ geschrieben)
Dim XResult As IEnumerable(Of XElement) = From XElEntry As XElement In XDoAlleAdressen.Descendants(„ENTRY“) _
Where XElEntry.Element(„NAME“).Value = NameInput _
Select XElEntry

Return XResult.ToList
End Function

‚‘’
‚‘’ Sucht nach dem uebergebenen Namen (muss ganz übereinstimmen)
‚‘’
‚‘’
‚‘’
‚‘’
Public Function getAdressByName_(ByVal NameInput As String) As List(Of XElement)
'durchsucht alle ENTRY und gibt die zurueck bei denen der Eingegebene Name enthalten ist (der Ausdruck ist in LINQ geschrieben)
Dim XResult As IEnumerable(Of XElement) = From XElEntry As XElement In XDoAlleAdressen.Descendants(„ENTRY“) _
Where XElEntry.Element(„NAME“).Value.Contains(NameInput) _
Select XElEntry

Return XResult.ToList
End Function

‚‘’
‚‘’ Sucht nach dem uebergebenen Namen (muss ganz übereinstimmen)
‚‘’
‚‘’
‚‘’
‚‘’
Public Function getListOfNamesContainingValue_(ByVal NameInput As String) As List(Of String)
'durchsucht alle ENTRY und gibt die Namen zurueck bei denen der Eingegebene Name enthalten ist (der Ausdruck ist in LINQ geschrieben)
Dim Result As IEnumerable(Of String) = From XElEntry As XElement In XDoAlleAdressen.Descendants(„ENTRY“) _
Where XElEntry.Element(„NAME“).Value.Contains(NameInput) _
Select XElEntry.Element(„NAME“).Value

Return Result.ToList
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ListOfXEL As List(Of XElement) = getAdressByName(„Meier“)

Dim ListOfXEL2 As List(Of XElement) = getAdressByName_(„M“)
Dim ListOfString As List(Of String) = getListOfNamesContainingValue_(„Me“)

End Sub
End Class

Viel Spaß beim Testen! Einfach ein neues Programm mit einem Button machen und den Code hineinkopieren!

Gruß

Marko

Ersteinmal Danke für den code jedoch bekomme ich keine (Sichtbare) Reaktion. Was mache ich falsch?

Hmm, was möchtest du denn da sehen? Das Ergebnis müßt du dir dann schon auf eine ListBox, TextBox oder ähnlichem anzeigen sonst wirst du nichts sehen.

Was hast Du denn bis jetzt schon mit VB.net gemacht??

Vielleicht solltest Du dir das Buch mal anschauen. Kannst mir ja dann mal sagen obs dir geholfen hat!

http://openbook.galileocomputing.de/visualbasic_2008/

Gruß

Marko