<Window Name="Attractmode" Text="Attractmode" ID="-4" Parent="0">
<Application>C:\Attractmode\Attractmode.exe</Application>
<Arguments>c:\program files\dvbviewer\dvbviewer.exe</Arguments>
<Systemwin>0</Systemwin>
...also , das die Zeilen untereinander stehen, und so angeordnet sind, wie der Rest der Datei (Windowdef.xml)
Diesen Code hier benutze ich dafür. Die Datei ist vom DVBViewer. Den Dateipfad müsste man anpassen. Die neue Datei wird im selben Verzeichniss erzeugt zum testen. Wenn ich nun dieses Programm ausführe, findet er zwar die richtige Position,schreibt aber immer nur in eine Zeile, und nicht untereinander, strukturiert ? Wie macht man das ?
Code: Alles auswählen
Procedure ModifiziereXMLfuerDVBViewer(*CurrentNode, CurrentSublevel)
If XMLNodeType(*CurrentNode) = #PB_XML_Normal
Name.s = GetXMLNodeName(*CurrentNode)
If Name = "Windows" ;Wenn der Knoten Windows in der WINDOWDEF.XML gefunden wurde...
*Eintrag =CreateXMLNode(*CurrentNode)
SetXMLNodeName(*eintrag,"Test")
SetXMLAttribute(*Eintrag,"Attribut","1")
; </Window><Test Attribut="1"/> .....das wird dann angezeigt in der neuen Datei (config.xml)
ProcedureReturn
EndIf
*ChildNode = ChildXMLNode(*CurrentNode)
While *ChildNode <> 0
ModifiziereXMLfuerDVBViewer(*ChildNode, CurrentSublevel + 1)
*ChildNode = NextXMLNode(*ChildNode)
Wend
EndIf
EndProcedure
Procedure modifiziereWindowDefXML()
;Pfad zur Windowdef.xml
Originaldatei$ = "c:\programData\CMUV\DVBViewer\WindowDef.xml"
If FileSize(Originaldatei$) > -1
DVBVBaum = LoadXML(#PB_Any, Originaldatei$)
If DVBVBaum
If XMLStatus(DVBVBaum) <> #PB_XML_Success
Message$ = "Fehler in der XML Datei :" + Chr(13)
Message$ + "Fehler : " + XMLError(DVBVBaum) + Chr(13)
Message$ + "Zeile : " + Str(XMLErrorLine(DVBVBaum)) + " Zeichen : " + Str(XMLErrorPosition(DVBVBaum))
EndIf
*MainNode = MainXMLNode(DVBVBaum)
If *Mainnode
modifiziereXMLfuerDVBViewer(*MainNode, 0)
If SaveXML(DVBVBaum,GetPathPart(Originaldatei$) + "Config.xml")
FreeXML(DVBVBaum)
ProcedureReturn 1
EndIf
EndIf
FreeXML(DVBVBaum)
EndIf
EndIf
EndProcedure
modifiziereWindowDefXML()
End