Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Element und Node (https://www.delphipraxis.net/124643-element-und-node.html)

moelski 22. Nov 2008 09:32


Element und Node
 
Moin !

Ich baue gerade etwas mit OmniXML rum. Und im Moment habe ich da glaube ich ein Verständnisproblem.
Kann mir jemand mal den Unterschied zwischen Node und Element erklären?

Ich will z.B. einen einfachen neuen Knoten anhängen. Warum muss ich da erst ein Element kreieren um es dann als Node anzuhängen?

Delphi-Quellcode:
var XMLElement : IXMLElement;
begin
  XMLElement := XMLDoc.CreateElement('dir');
  XMLElement.SetAttribute('name', 'Test');
  Rootelement.AppendChild(XMLElement);
Warum kann man das ganze Konstrukt nicht über Nodes ansprechen?

moelski 22. Nov 2008 13:46

Re: Element und Node
 
Moin !

Ok ich versuche mir mal selber zu helfen. Evtl. kann ja jemand mal Richtig oder falsch hinpinnen ...

Gehe ich recht in der Annahme das ich mit dem Element einen Container erstelle also quasi das hier fett markierte:
<Element name="Test">NodeText</Element>

Und mit Node greife ich dann wirklich auf den Inhalt des Containers zu bzw. erstelle ihn dort.
<Element name="Test">NodeText</Element>

Ist das so in etwa richtig ?

sx2008 22. Nov 2008 15:22

Re: Element und Node
 
Ein Node ist eine allgemeine (Basis-)Klasse im Document Object Modell.
Dahinter kann sich ein Element, Attribut, Textknoten verbergen. (es gibt noch weitere Node-Klassen z.B. Comment-Node)
Beispiel:
XML-Code:
<info xml:lang="de">Text Nr1

Text Nr2</info>
Es gibt ein Element-Node (name=info) das folgende Child-Nodes hat:
* ein Attribut-Node (name=xml:lang)
* ein Text-Node (Text-Nodes haben keinen Namen)
* eine Element-Node (name=p)
* noch ein Text-Node (text="Text Nr2")

ryLIX 23. Jan 2009 08:52

Re: Element und Node
 
sx2008 könntest du des noch mal genauer ausführen.
Denn es scheint mir das die verschiedenen Parser für Delphi das unterschiedlich interpretieren.

Ich hab nun mehrere Parser durch und bei jedem muss ich das Attribut meines Nodes ander abfragen.

XML-Code:
<MyNode value="Attribut" />
Wenn ich MSXML nutze reicht es wenn ich nur das Attribut abfrage.
Beim ADOM (OpenXML) frage ich NodeType (Element) ab und wenn True dann das Attribut.
Das liefert mir aber (läuft in einer Schleife) einmal einen leeren String und dann erst "Attribut".

Liegt das nun daran das ich die Parser falsch nutze oder dass das ganze durch die verschiedenen Parser unterschiedlich intepretiert wird? :gruebel:


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