VB:Ein komplettes Tag auslesen und wieder einfügen

Hi,ich habe zwei XML-Files.
Das Basis XML-File(b_file.txt)sieht so aus:

Nun möchte ich aus dem „Basis XML-File“ jeweils das Tag komplett auslesen, um dann dieses Tag in mein neues XML (all_mod.xml) unter das Tag einzufügen. Die XML-Datei müsste doch dann so aussehen:

Wie bekomme ich es hin, dass ich ein komplettes Tag auslesen kann und in einer anderen XML-Datei das Tag einfügen kann?

So wie ich es bis jetzt gemacht habe, klappt es leider nicht :frowning:.

Dim teil As IXMLDOMElement
Dim mml As MSXML2.DOMDocument30
Set rgb_file = New DOMDocument30
Dim fileName_list As IXMLDOMNodeList
Dim layer_list As IXMLDOMNodeList
Dim fileName, red, green, blue, alpha, colorIndex As String
'Dim nik As IXMLDOMNode

yes = rgb_file.Load(„b_file.xml“)
If yes = True Then
Set fileName_list = rgb_file.getElementsByTagName(„file“)

For i = 0 To fileName_list.length - 1
fileName = fileName_list.Item(i).nodeTypedValue
If fileName_list.Item(i).Attributes.getNamedItem(„Filename“).Text = „C:\XX.tif“" Then
For ctr = 0 To fileName_list.Item(i).childNodes.length - 1
teil = fileName_list.item(i).selectNodes.item(1).

red = fileName_list.Item(i).childNodes.Item(ctr).Attributes.Item(0).Text
green = fileName_list.Item(i).childNodes.Item(ctr).Attributes.Item(1).Text
blue = fileName_list.Item(i).childNodes.Item(ctr).Attributes.Item(2).Text
colorIndex = fileName_list.Item(i).childNodes.Item(ctr).Attributes.Item(3).Text
Next
Else
MsgBox („Schade“)
End If
Next

mml.Load („C:\all_mod.xml“)
Set layer_list = mml.getElementsByTagName(„layer“)

For i = 0 To layer_list.length - 1
layer_name = layer_list.Item(i).firstChild.nodeTypedValue
If layer_name = „Karte7b: Bewertung der Landschaftselemente“ Then
layer_list.Item(i).childNodes.Item(3).childNodes.Item(0).appendChild = teil

End If
Next
mml.save („C:\all_mod.xml“)
End If

Vielen Dank schon mal für eure Hilfe

Hallo,

eine Frage hätte ich dazu.
Macht es einen tieferen Sinn, den ich nicht verstehe, weil ioch von XML keine Ahnung habe, daß das Programm so kompliziert ist?

Mit einfacher Stringzerlegung ist es eigentlich recht einfach, aus…

… das hier …

… zu bauen, wenn Du noch dazu sagst, was aus den anderen Tags werden soll und wo die Information zum Alphakanal her kommt.

Gruß, Rainer

Nachtrag, Code
Hi,

nur mal als Beispiel ein Code, was ich verstanden habe …

Option Explicit

Dim zl() As String

Private Sub Command1\_Click()
 Dim na As String
 Dim txt As String
 Dim ff As Integer
 Dim i As Integer
 Dim l As Long
 na = 'c:\b\_file.txt'
 ff = FreeFile
 l = FileLen(na)
 txt = Space(l)
 Open na For Binary As #ff
 Get #ff, , txt
 Close #ff
 'Ende der Vorbereitung, der Code steht in 'txt'
 zl = Split(txt, vbCrLf)
 'die Zeilen stehen jetzt im Array zl()
 'Ausgabe zum Test in eine Listbox, kann entfernt werden.
 For i = LBound(zl) To UBound(zl)
 List1.AddItem zl(i)
 Next
End Sub

Private Sub Command2\_Click()
 Dim i As Integer
 Dim su As String
 Dim txt As String
 Dim t1 As String
 Dim t2 As String
 Dim po As Integer
 'Den Text schreibe ich zur Kontrolle in eine Textbox
 Text1.Text = ''
 t1 = '' + vbCrLf + '' + vbCrLf + '' + vbCrLf
 t2 = '' + vbCrLf + '' + vbCrLf + '' + vbCrLf
 su = '

Gruß, Rainer