Seite 2 von 2

Verfasst: 20.12.2008 16:02
von Falko
Steht in der Hilfe, aber hier ein Beispiel. Wie gesagt, ich kenne mich auch nicht damit aus, aber versuche es selbst zu verstehen :wink:

Code: Alles auswählen

FormatXML(0,#PB_XML_WindowsNewline)
bzw. mit zwei Zeichen einrücken, dann so:

Code: Alles auswählen

FormatXML(0,#PB_XML_WindowsNewline,2)

Verfasst: 20.12.2008 19:49
von kiki
Wie bearbeite ich ein Vorhandenen Dokument weiter?

Also

Code: Alles auswählen

LoadXML()
was dannach kommt weiß ich nicht...

und dann

Code: Alles auswählen

SetXMLNodeName()
SetXMLNodeText()

Verfasst: 20.12.2008 20:03
von Kiffi
kiki hat geschrieben:was dannach kommt weiß ich nicht...
wissen wir auch nicht. Es sei denn, Du verrätst uns, was Du überhaupt
machen willst ;-)

Grüße ... Kiffi

Verfasst: 20.12.2008 20:26
von kiki
Ja, also wie gesagt, das Dokument weiter verarbeiten.

Also dieses Dokument laden:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?><Test><Test>Hallo</Test>Hallo</Test>
und noch mehr reinschreiben mit

Code: Alles auswählen

SetXMLNodeName()
und

Code: Alles auswählen

SetXMLNodeText()

Verfasst: 20.12.2008 21:06
von Kiffi
kiki hat geschrieben:Ja, also wie gesagt, das Dokument weiter verarbeiten.

Also dieses Dokument laden:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?><Test><Test>Hallo</Test>Hallo</Test>
und noch mehr reinschreiben mit

Code: Alles auswählen

SetXMLNodeName()
und

Code: Alles auswählen

SetXMLNodeText()
ja, dann mach das doch! In diesem Thread sind alle Infos, die Du dafür
benötigst.

Grüße ... Kiffi

Verfasst: 20.12.2008 21:30
von kiki
Habe ich schon versucht, klappt nicht:

Code: Alles auswählen

LoadXML(0, "C:\kiki.xml")
RootNode = RootXMLNode(0) 
NeuerNode = CreateXMLNode(RootNode) 
SetXMLNodeName(NeuerNode, "Test") 
SetXMLNodeText(NeuerNode, "Hallo") 

Verfasst: 20.12.2008 21:50
von Kiffi
kiki hat geschrieben:Habe ich schon versucht, klappt nicht:
XML-Dokumenten dürfen nur ein sogenannten Stammelement haben:

Das ist ok:

Code: Alles auswählen

<Test>
  <Test>Hallo</Test>
  <Test>Hallo</Test>
  <Test>Hallo</Test>
</Test>
Das ist nicht ok:

Code: Alles auswählen

<Test>Hallo</Test>
<Test>Hallo</Test>
<Test>Hallo</Test>
Du siehst: Im ersten Fall gibt es einen oberen 'Test'-Node, der drei
weitere Nodes beinhaltet. Dieser obere Node ist das Stammelement.

wenn man mal die Nodes ein wenig sinnvoller benennt, dann sähe das
so aus:

Code: Alles auswählen

<Stammelement>
  <Test>Hallo</Test>
  <Test>Hallo</Test>
  <Test>Hallo</Test>
</Stammelement>
Wenn Du nun Deinen Code ausführst, so versuchst Du, parallel zum
Stammelement ein weiteres Stammelement hinzuzufügen. Das geht nicht.

Du musst also zuerst das Stammelement ermitteln (mit
XMLNodeFromPath()) und dann an dieses Element Deinen neuen Node
anhängen:

Code: Alles auswählen

LoadXML(0, "C:\kiki.xml")
RootNode = RootXMLNode(0)

Stammelement = XMLNodeFromPath(RootNode, "Test")

If Stammelement
  
  NeuerNode = CreateXMLNode(Stammelement)
  SetXMLNodeName(NeuerNode, "Test")
  SetXMLNodeText(NeuerNode, "Hallo") 
  
Else
  
  Debug "!Stammelement"
  
EndIf

XML.s = Space(ExportXMLSize(0))
ExportXML(0, @XML, Len(XML))

MessageRequester("", XML)