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?
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