Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi omniXML, Function CreateXMLDoc nicht gefunden (https://www.delphipraxis.net/204279-omnixml-function-createxmldoc-nicht-gefunden.html)

bernhard_LA 14. Mai 2020 10:13

omniXML, Function CreateXMLDoc nicht gefunden
 
ich versuche mit Delphi 10.3. eine cross Plattform XML Anwendung zu erstellen,
die unit omnixml habe ich nicht bei mir gefunden , dafür Xml.omnixmldom;
muss man omniXML separat installieren ? ist omniXML nicht bereits ein Bestandteil von D 10.3



Delphi-Quellcode:
uses  Xml.XMLDom,
       Xml.XMLDoc,
       Xml.XMLIntf,
       Xml.omnixmldom;;

var
  aChild: IXMLElement;
  aRow : IXMLElement;
  rowID : Integer;
  XMLDoc: IXMLDocument;
begin
  XMLDoc := CreateXMLDoc;
  XMLDoc.DocumentElement := XMLDoc.CreateElement('root');
  XMLDoc.DocumentElement.SetAttribute('ver', 'value');
  XMLDoc.DocumentElement.SetAttribute('file', 'value');

himitsu 14. Mai 2020 10:45

AW: omniXML, Function CreateXMLDoc nicht gefunden
 
OmniXML war/ist schon eine ganze Weile mit dabei.

Viele Units wurden umbenannt, Forms.pas heißt nur Vcl.Forms.pas
und auch die Units von OmniXML wurden umbenannt.
Xml.Internal.OmniXML.pas
Xml.Internal.OmniXMLXPath.pas
Xml.OmniXMLDom.pas

OmniXmlDom waren, glaub ich, die internen Interfaces
und OmniXml die Delphi-Kapselung dieser Interfaces.

Aber im Grunde ist das egal, da du das OmniXML besser nicht direkt benutzt,
sondern die platformunabhängige Kapselung, welche dann je nach Ziel intern weiterleitet, z.B. zum OmniXML, MS-XML oder was grad verfügbar ist.
Im Notfall kann man dort dann auch einen Provider auswählen und die Umleitung steuern, wenn Mehreres verfügbar ist.

Xml.XMLDoc.pas
Xml.XMLDom.pas
Xml.XMLIniFile.pas
Xml.XMLIntf.pas
Xml.XmlTransform.pas
usw.

C:\Program Files (x86)\Embarcadero\Studio\20.0\source\xml\

bernhard_LA 14. Mai 2020 11:53

AW: omniXML, Function CreateXMLDoc nicht gefunden
 
einen Schritt weiter, CreateXMLDoc wird jetzt gefunden.
ich verwende jetzt

Delphi-Quellcode:
uses Xml.XMLDoc,
Xml.XMLDom,
Xml.XMLIniFile,
Xml.XMLIntf,
Xml.XmlTransform,
Xml.omnixmldom;

beim nächsten Schritt findet er die function LoadXMLData nicht, obwohl sie doch in der unit Xml.XMLDoc definiert wurde,
was geht dann hier noch falsch ???

würde gerne diesen kurzen sample code unter LINUX laufen lassen


Delphi-Quellcode:
var
  XMLDoc: IXMLDocument;
  NodeList: IXMLNodeList;
begin
  XMLDoc := CreateXMLDoc;
 //  XMLDoc.Load(ExpandFileName(ExtractFilePath(Application.ExeName) + '..\doc\animals.xml'));
  NodeList := XMLDoc.DocumentElement.SelectNodes('DATA1/FISH');
  ShowMessageFmt('(1) %d nodes', [NodeList.Length]);
  NodeList := nil;
  NodeList := XMLDoc.DocumentElement.SelectNodes('DATA1/FISH');
 // ShowMessageFmt('(2) %d nodes', [NodeList.Length]);
  XMLDoc := nil;


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