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:

    1program Project1;
    2
    3{$APPTYPE CONSOLE}
    4
    5uses
    6  SysUtils, NativeXml;
    7var
    8  oXML: TNativeXml;
    9  oNode: TXmlNode;
   10
   11begin
   12  oXML := TNativeXml.Create;
   13  try
   14    oXML.LoadFromFile('test.xml');
   15    writeln(oXML.Root.Name); // node name
   16    oNode := oXML.Root.FindNode('appchecks'); // child node
   17    writeln(oXML.Root.AttributeByName['version']); // atribut
   18
   19// vytvoreni node a atributu
   20    oNode.NodeNew('novynode').AttributeAdd('novyattr', 20); 
   21    oXML.SaveToFile('test2.xml');
   22  finally
   23    FreeAndNil(oXML);
   24  end;
   25end.


Nabízíme Delphi školení a konzultace na různá témata, primárně ve Vaší firmě.

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

Partial English version.

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 nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

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.

Anketa

Poslední komentáře

Comment RSS