Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   XML Formatierungsproblem (https://www.delphipraxis.net/193563-xml-formatierungsproblem.html)

sko1 15. Aug 2017 14:30

XML Formatierungsproblem
 
Hallo,

mein erstelltes XML mit
Delphi-Quellcode:
var
  Xml: IXMLDOCUMENT;
begin
    Xml := NewXMLDocument;
    Xml.Encoding := 'utf-8';
    Xml.Options := [doNodeAutoIndent]; // looks better in Editor ;)

und meiner Unterfunktion

Delphi-Quellcode:
function AddNode(Node: IXMLNode; NodeName: string; NodeInhalt: string)
  : IXMLNode;
var
  UNode: IXMLNode;
begin
  // in den übergebenen Node wird der neue NodeName eingefügt
  try
    UNode := Node.AddChild(NodeName);
    UNode.Text := NodeInhalt;
    Result := UNode;
  except
    on E: Exception do
      LogAusgabe(E.ClassName + ' in AddNode : ' + E.Message);
  end;
end;
ergibt folgendes XML (Auszug):

<ram:PostalTradeAddress> <ram:PostcodeCode>12333</ram:PostcodeCode>
<ram:LineOne>Bahnhof-Straße 5</ram:LineOne>
<ram:CityName>Musterhausen</ram:CityName>
<ram:CountryID>DE</ram:CountryID>
</ram:PostalTradeAddress>

Man sieht das in der ersten Zeile ein Zeilenumbruch fehlt, irgendwas läuft da schief, aber was?
Mist, die Smileys müsst Ihr Euch als ':p' denken!

Ciao
Stefan

Uwe Raabe 15. Aug 2017 14:37

AW: XML Formatierungsproblem
 
Zitat:

Zitat von sko1 (Beitrag 1378802)
Mist, die Smileys müsst Ihr Euch als ':p' denken!

Setz es doch in ein Code-Tag.

Aviator 15. Aug 2017 15:12

AW: XML Formatierungsproblem
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1378804)
Zitat:

Zitat von sko1 (Beitrag 1378802)
Mist, die Smileys müsst Ihr Euch als ':p' denken!

Setz es doch in ein Code-Tag.

Das wäre sicherlich die bessere Lösung. Es gibt aber auch noch die Möglichkeit, grafische Smileys zu deaktivieren. Siehe die Options-Checkboxen unter dem Editor beim Erstellen des Beitrages.

himitsu 15. Aug 2017 16:49

AW: XML Formatierungsproblem
 
Die inneren Nodes haben ein Ident + <Node...> + LineBreak (Ident = ' ')
und beim Äußeren fehlt das irgendwie.
Wenn ich dementsprechen die inneren Nodes entferne, dann bleibt nur noch
XML-Code:
<ram:PostalTradeAddress></ram:PostalTradeAddress>
übrig.

z.B. das MS-XMLDOM steuert die Idents über zwischengeschobene Text-Nodes, mit dem Ident-Code (Leerzeichen/Tabulator und Zeilenumbruch).

Das von dir aktivierte AutoIdent macht sowas nur für neu eingefügt Nodes und den Teil, wo du deinen Root-Node erstellst, der ist scheinbar geheim.


pssst: Delphi-Referenz durchsuchenFormatXMLData aus XMLDoc

sko1 16. Aug 2017 05:57

AW: XML Formatierungsproblem
 
Hier entsteht der Root-Node:

Delphi-Quellcode:
    Xml := NewXMLDocument;
    Xml.Encoding := 'utf-8';
    Xml.Options := [doNodeAutoIndent]; // looks better in Editor ;)
    CrossIndustryDocumentNode := Xml.AddChild('rsm:CrossIndustryDocument');
und alle weiteren Unternodes dann mit meiner Funktion AddNode

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr.

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