Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   XML in DelphiXE5 (https://www.delphipraxis.net/177891-xml-delphixe5.html)

GummiBaum 4. Dez 2013 10:06

XML in DelphiXE5
 
Hallo :)

ich habe folgendes Problem.
Ich erstelle ein einfaches XML Dokument in einer FireMonkey Anwendung
für iOS.

Code:
procedure TForm2.XMLClick(Sender: TObject);
var
  XML : IXMLDocument;
  RootNode,CurNode : IXMLNODE
  s : String;

begin
  XML := NewXMLDocument;

  RootNode := XML.AddChild('DATEN');
  CurNode := RootNode.AddChild('TEXT');
  CurNode.Text := 'Test';

  s:=xml.XML.Text;
end;
Unter Delphi XE4 funktioniert das auch wunderbar.

Zitat:

<?xml version="1.0" encoding="UTF-16LE"?>
'#$A'
<DATEN>
<TEXT>Test</TEXT>
</DATEN>
'#$A
Jetzt habe ich meine Entwicklungsumgebung auf Delphi XE5 umgestellt und nun funktioniert
meine XML Dokument Erstellung nicht mehr.
Es fehlt der komplette XML Header.

Zitat:

#$A'
<DATEN>
<TEXT>Test</TEXT>
</DATEN>
'#$A
Woran könnte das liegen?
Und was muss ich anderst machen damit es wieder funktioniert :(


Schon mal vielen lieben Dank für eure Hilfe :)

Der schöne Günther 4. Dez 2013 10:17

AW: XML in DelphiXE5
 
Kann ich mit einer FireMonkey-Desktopanwendung unter XE5 nicht nachvollziehen, der Header ist drin.

Wurde nicht von XE4 auf XE5 für nicht-Windows-Plattformen der XML-Parser geändert? Ich habe das Android und iOS-Gedöns nicht installiert und kann das nicht testen :-(

GummiBaum 4. Dez 2013 15:11

AW: XML in DelphiXE5
 
Danke für deine Antwort :)
Kennst du vllt. eine andere Methode XML's in Delphi zu erstellen?

himitsu 4. Dez 2013 15:33

AW: XML in DelphiXE5
 
Ist diese XML-Instruction denn unbedingt nötig?
Wenn nichts angegeben ist, dann wird standardmäßig Version 1.0 und als Kodierung UTF-8 verwendet.



Du kannst die XML-Instruction aber auch manuell erstellen.

Delphi-Quellcode:
  XML := {$IF Declared(MSXMLDOMDocumentFactory)}MSXMLDOMDocumentFactory.{$IFEND}CreateDOMDocument;
  XML.async := False;
  XML.appendChild(XML.createProcessingInstruction('xml', 'version="1.0" standalone="yes"'));

  Root := XML.appendChild(XML.createElement('DATEN')) as IXMLDOMElement;
Direkt mit dem MS-XML-DOM (IXMLDOMDocument) hab ich das letztens so gemacht.
Es wird vermutlich mit dem IXMLDocument ähnlich möglich sein.

Wegen Problemen im TXMLDocument, speziell beim Erstellen neuer XML-Dateien, hatte ich es auch mal so gelöst, daß ich eine leere XML-Datei als Text geladen und dann Diese weiterverwendet hatte.
Also XML-Instruktion und Root-Element schon vordefiniert:
XML-Code:
<?xml version="1.0" encoding="UTF-16LE"?><DATEN></DATEN>

Guido R. 4. Dez 2013 15:34

AW: XML in DelphiXE5
 
Hi!
Hast Du mal die tJvSimpleXML-Komponente der Jedis ausprobiert?
Über JvSimpleXML1.Prolog kannst Du auch auf den XML-Header zugreifen.
Für meine Bedürfnisse reicht diese Komponente voll und ganz aus.

Gruß
Guido R.

Der schöne Günther 6. Dez 2013 08:24

AW: XML in DelphiXE5
 
Hallo-

Ich habe den Inhalt jetzt nur überflogen, aber es ging um Android und XML-Header:
http://www.deltics.co.nz/blog/posts/2208

(Auch wenn ich den Blog nicht leiden kann)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz