NativeXML

vložil Radek Červinka 3. října 2010 00:31

Pro přístup k XML v Delphi je možno použít několik různých komponent nebo tříd. Součástí instalace Delphi je implementace XML zapouzdřující ActiveX implementaci XML od MS (MSXML6) - komponenty TXMLDocument atd.

JCL má nativní implementaci v JvSimpleXML nebo můžete použít třeba NativeXML. Posledně jmenovaný zástupce je původně komerční komponenta, kterou ale autor otevřel jako open source. Jedná se o velmi rychlou záležitost s podporou od Delphi 5 až do aktuální verze. V projektu stačí přidat jeden soubor .pas a jeden .inc - pro mne velmi sympatická vlastnost.

Proč použít nativní komponentu? Hlavním plusem je nezávislost na MS knihovnách. Nejen s ohledem na další verzi (multiplatformnost a 64bit) si člověk ušetří dost problémů.

Použití je snadné - viz ukázka:

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, NativeXml;
var
  oXML: TNativeXml;
  oNode: TXmlNode;

begin
  oXML := TNativeXml.Create;
  try
    oXML.LoadFromFile('test.xml');
    writeln(oXML.Root.Name); // node name
    oNode := oXML.Root.FindNode('appchecks'); // child node
    writeln(oXML.Root.AttributeByName['version']); // atribut

// vytvoreni node a atributu
    oNode.NodeNew('novynode').AttributeAdd('novyattr', 20); 
    oXML.SaveToFile('test2.xml');
  finally
    FreeAndNil(oXML);
  end;
end.

Tagy: , ,

Komponenty

Komentáře

3.10.2010 2:00:04 #

kormizz

jako dalsi vyhody NativeXML oproti ActiveX implementaci MS XML v Delphi bych vyzdvihl rychlost a stabilitu... krome toho NativeXML si zamilujete jednoduchosti pouziti! :)

kormizz

3.10.2010 12:14:22 #

Jarin

momentalne jsem implementoval JSON pomoci superobject, podobne pouziti, super rychlost a navic myslim, ze ma v sobe XML parser, kterej prevede cely obsah do JSON ... pro nekoho urcite prijemnejsi jak pouzivat XML

Jarin

3.10.2010 16:17:48 #

pepak

Taky používám NativeXml docela rád. Hlavně se mi na něm líbí ta podpora napříč verzemi Delphi, včetně mé prehistorické pětky :-)

pepak

4.10.2010 20:27:14 #

Vladimír Klaus

Tak já se musím proti používání NativeXml zásadně ohradit. Používám ji asi 3 roky (nejdřív velká spokojenost) ale teď už s ní jsou neustálé problémy - nejdřív to začalo tím, že se přestala udržovat (bohužel tragická nehoda autora), ale i na další věci se nereaguje (viz diskuze na jeho webu) a v neposlední řadě je velký, ale opravdu naprosto zásadní problém, když chcete pracovat s XML bez ohledu na kódování. V jedné verzi to chodí, v druhé ne, ve třetí se něco opraví, ve čtvrté je to zase blbě. A občas se zase něco vylepší, čímž se pokazí věc jiná.

Ve svém projektu, který pracuje s XML z "celého světa" - tedy počínaje češtinou, přes angličtinu, ruštinu, čínštinu a všechny šílené exotické jazyky nyní používám právě MS přístup a je to luxusní. Od té doby jsem už NIKDY nemusel řešit v jakém kódování je XML a jestli převody mezi Ansi, Utf-8 mám nebo nemám použít, jestli je na něco vhodné Value nebo ValueAsUnicodeString nebo ValueAsWideString nebo ValueDirect a ještě to pak konvertovat (nebo radši ne?). Zkrátka Node.Text je univerzální a za všech situací korektní.

Autora NativeXml sice můžu obdivovat za velké a jistě náročně dílo, nicméně výsledek je problematický. Možná to časem vyladí, možná dokončí novou verzi, možná ...

Vladimír Klaus

4.10.2010 23:59:59 #

Jarin

jo, a proto bych mohl jen doporucit JSON, ktery je "jen jeden" ... cela struktura se uklada v UTF-8, tj. zarucuje podporu vsech jazyku a pak je jen na uzivateli, jak data vyuzije ;)

Jarin

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců