Betrachten Sie die folgende mediaobject KlasseLinq to XML kombinieren Werte
Public Class MediaObject
Public Path as String
Public File as String
Public Sub New(_path as String, _file as String)
Path = _path
File = _file
End Sub
End Class
Ich habe die folgende XML (myXML):
Dim mobjects As New List(Of MediaObject)
Dim x As XDocument = XDocument.Parse(myxml)
mobjects = (From m In x.<records>.<media> Select media = New MediaObject(m.<path>.Value, m.<file>.Value)).ToList()
:
<records>
<media>
<path>\\first\path</path>
<file>firstfile</file>
</media>
<media>
<path>\\second\path</path>
<file>secondfile</file>
</media>
<records>
eine Liste von MediaObjects ich diese benutzen Sie
Alles ist in Ordnung. Aber jetzt diese neue XML betrachten (wo zweite Datei ein alternative der ersten ist):
<records>
<media>
<path>\\first\path</path>
<file>firstfile</file>
<path>\\second\path</path>
<file>secondfile</file>
</media>
</records>
ich entweder von Eigenschaften leicht zu bekommen, aber nicht beide, dh
Dim mobjects As New List(Of MediaObject)
Dim x As XDocument = XDocument.Parse(myxml)
'here get only the paths
Dim r = (From m In x.<records>.<media> Select media = (From t In m.<path> Select New MediaObject(t.Value, Nothing)).ToList()).ToList()
mobjects = r(0)
Wie würde ich mich um in diesem Kontext eine Liste von MediaObjects zu erstellen? (Lassen Sie uns Pfad und Datei Werte in der XML sind in der Reihenfolge und gehen 2 von 2)
Vielen Dank!
UPDATE: Entschuldigung, ich war nicht genau genug. Hier ist das reale Szenario. Es kann viele Pfade und Dateien und es
- Pfade, bevor Dateien kommen garantiert wird
- gibt es die gleiche Anzahl von Pfaden und Dateien
- alle Pfade kommen zuerst, dann werden alle Dateien
Probe :
PS: Ich kann das XML nicht ändern, das von einem anderen System kommt.
..
Dank Jeff. Sorry, ich war nicht präzise genug, ich habe meine Frage aktualisiert. Trotzdem bin ich mir ziemlich sicher, dass dies der richtige Weg ist, indem ich vielleicht NodesAfterSelf benutze und das Nth File Tag auswähle. – jhfelectric
So paaren Sie jeden n-ten Pfad und Datei, kein Problem. –
Danke das ist perfekt! – jhfelectric