Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   XML erstellen (https://www.delphipraxis.net/207216-xml-erstellen.html)

Graw 4. Mär 2021 15:01

XML erstellen
 
Hallo,


ich will eine XML erstellen die wie folgt aussieht:
Code:
<?xml version="1.0" encoding="utf-8"?>
<semiramis xmlns="com.Test">
  <ItemMeasurementsImport xmlns="com.Test1">
    <Test>23234</Test>
  </ItemMeasurementsImport>
</semiramis>

Leider bekomme ich bislang folgendes:
Code:
<?xml version="1.0" encoding="utf-8"?>
<semiramis xmlns="com.Test">
  <ItemMeasurementsImport xmlns="com.Test1">
    <Test xmlns="">23234</Test>
  </ItemMeasurementsImport>
</semiramis>
Was muss ich machen damit Node3 nicht das xmlns erbt?

So sieht der Code dazu aus:
Code:
XML := NewXMLDocument;
    XML.Encoding := 'utf-8';
    XML.Options := [doNodeAutoIndent];
    XMLNode1 := XML.AddChild('semiramis');
    XMLNode1.SetAttributeNS('xmlns', 'namesp', 'com.Test');

    XMLNode2 := XMLNode1.AddChild('ItemMeasurementsImport');
    XMLNode2.Attributes['xmlns'] := 'com.Test1';
    XMLNode3 := XMLNode2.AddChild('Test');
    XMLNode3.Text := '23234';

bcvs 4. Mär 2021 17:28

AW: XML erstellen
 
Darüber bin ich kürzlich auch gestolpert.

Du musst im XMLNode3 nochmal das xmlns setzen. Das kann man auch direkt als dem AddChild mitgeben:

XMLNode3 := XMLNode2.AddChild('Test', 'com.Test1');

s. auch hier:
http://codeverge.com/embarcadero.del...d-node/1096751

Graw 8. Mär 2021 08:59

AW: XML erstellen
 
Perfekt,

vielen Dank :thumb:

Mavarik 8. Mär 2021 09:25

AW: XML erstellen
 
Zitat:

Zitat von bcvs (Beitrag 1484429)
Du musst im XMLNode3 nochmal das xmlns setzen. Das kann man auch direkt als dem AddChild mitgeben:

Ich erzeuge mir immer ein Zugriffsinterface aus der XSD Datei.
Leider habe ich da auch öfter das Problem, dass der Namespace nicht passt.

Hast Du dazu auch eine Idee?

Mavarik

bcvs 8. Mär 2021 11:20

AW: XML erstellen
 
Nein.
Ich bin jetzt auch nicht der große XML-Experte. Habe nur kürzlich was mit XML gemacht und da eine Lösung für dieses Problem gefunden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 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