xml bemutató
XML - Extensible Markup Language (eX tensible M arkup L anguage) által ajánlott W3C mint egy nyelv az információcserét a különböző rendszerek közötti. Ez a szöveg-orientált módon információ tárolására. Modern adatcsere nyelvek, mint az XHTML, valamint a legtöbb WebServices technológiák alapulnak XML.
DOM XML (Document Object Model) - egy sor szabványos berendezések, amelyek egy egységes felületet használó XML a különböző nyelvek és platformok. Szabvány csak meghatározza a módszereket, tulajdonságok és más a felület objektum, így a végrehajtás ingyenes különböző nyelveken. FCL jelenleg támogatja a teljes DOM 1.0.
A cikk példái az XML-adatokat az elv egyre bonyolultabb.
Használat: Unicode és ANSI
FPC nyújt XML modulokat használó ANSI kódolást. Ezért ezek befolyásolhatják a platform, ahol a kód fut, és nem rendelkezik a Unicode támogatása. Lázár, viszont rendelkezik saját sorozata XML modulok elrendezve LazUtils csomagot. Ezek teljes mértékben támogatja a Unicode UTF-8 formátumban, és nem függ a teljesítő platform kódot. Ezek a modulok felcserélhetők és azok használatáról esetben csak a jelenléte a felhasználási listáját.
A következő modulokat használják FPC XML kódolási rendszer:
Ezek a modulok vannak Lazarus XML és támogatja a Unicode UTF-8 formátumban:
- laz2_DOM
- laz2_XMLRead
- laz2_XMLWrite
- laz2_XMLCfg
- laz2_XMLUtils
- laz_XMLStreaming.
Nem mindegyik van szükség, mindegyik példában. Azonban, ha szüksége lesz a DOM, mert tartalmaz több fajta, beleértve TXMLDocument.
Olvasás szöveges csomópont
Ne feledje, hogy ha dolgozik TXMLDocument, a szöveg a csomóponton belül tartják egy külön szöveges csomópont. Ezért meg kell hivatkozni a szöveges érték a csomópont külön csomópontot. Alternatív textContent tulajdonság lehet használni, hogy a visszatérési értékek minden csomópont alatt fekvő, amely összefüggésbe hozható az adatokat.
ReadXMLFile eljárás mindig újfajta TXMLDocument. így nem kell létrehozni előre. Azonban, ha kézzel kell hívni a Szabad eljárás befejezése után a dokumentum, hogy kiadja a források által elfoglalt tárgy TXMLDocument.
Vegyük például a következő XML-fájl:
Az alábbi példa mutatja a helyes és helytelen módon egyre xml szöveg csomópont értékeket:
Nyomtató csomópont nevét
Csak egy gyors megjegyzés navigálja a DOM fában:
Szekvenciális hozzáférést biztosít a legjobb helyeket, hogy használja a tulajdonságok és FirstChild NextSibling (sétálni a fa), vagy LastChild és PreviousSibling (vissza a végén a fa). Véletlenszerű hozzáférés a fa csomópontjait, akkor a tulajdonság vagy metódus ChildNodes getElementsByTagName. de ezek a módszerek létrehozása TDOMNodeList objektumot használat után el kell engedni. Ez a viselkedés különbözik a többi DOM implementációk (pl MSXML), mert FCL végrehajtás alapul tárgyak, hanem interfészek.
A következő példa bemutatja, hogyan jelenjenek meg a nevek, a csomópontok TMemo alkatrész található űrlapot.
Az alábbiakban egy XML-fájl neve 'C: \ Programs \ test.xml':
És a kódot Pascal, amely elvégzi ezt a feladatot:
Ennek eredményeként, a program megjeleníti a következő:
Loading XML egy TreeView
Az egyik gyakori felhasználása XML fájl - elemzés és jelenítsék meg egy fa formában. Megtalálható TTreeView komponens a lap „Common Controls” Lazarus'a.
Funkció alábbi vozmot XML dokumentum korábban betöltött fájlból vagy a szoftver által generált, és kitölti a TreeView és annak tartalmát. Fejléc egyes csomópont lesz a tartalmát az első attribútum a csomópont.
Megváltoztatása az XML dokumentum
Az első dolog, amit meg kell emlékezni, TDOMDocument a fogantyút (fogantyú) a DOM. Akkor kap egy példányát az osztály létrehozásával vagy terhelés egy XML dokumentum.
Másrészt, a csomópontok nem lehet létrehozni, mint egy tárgyat. Ki kell használni a módszereket ajánlanak TDOMDocument azok létrehozását, és ezt követően más módszerekkel, hogy őket a kívánt helyre a fa. Ez azt sugallja, hogy a csomópontok kell tartozniuk egy jól meghatározott DOM dokumentumot.
Íme néhány a leggyakoribb módszerek TDOMDocument:
Létrehozása egy sor TXMLDocument
Ha az XML adatok összhangban MyXmlString létre DOM belőle, akkor a következő kódot:
Hitelességének ellenőrzését a dokumentum
Ez egy példa XML-dokumentumot, amely a DTD:
Ez a DTD meghatározza, hogy a gyökér elem tartalmaznia kell egy vagy több gyermek elemet. gyermekelemeket tartalmazhatnak csak karakteres adatot. Ha az értelmező észlel e szabályokat megsértve, akkor jelentést róluk.
Töltse le ezt a dokumentumot valamivel bonyolultabb. Hagyja, hogy a forrás XML adatok áramban lévő AStream:
szóköz
Ha meg szeretné tartani a szóközt szöveges csomópontok, akkor használja a fenti módszer betöltése egy XML dokumentum. Alapértelmezésben vezető üres figyelmen kívül hagyja, hogy miért ReadXML (.) Függvény kihagyja az összes szóközt elején a szöveg csomópontok. Mielőtt felhívná Parser.Parse (Src, TheDoc) adja hozzá a következő sort:
Ezt követően az elemző hagyja az összes szóköz karakter, beleértve a sortöréseket hozzá olvashatóság az XML dokumentum!
streaming olvasás
XML feldolgozás DOM, egy megköveteli letölti a teljes dokumentumot a memóriába. Ez nem kívánatos vagy lehetséges, ha a dokumentum hatalmas. FCL egy függvényt biztosít olvasni egy XML-adatokat csomópont egy időben, a TXMLReader osztály és leszármazottai. TXMLReader osztály hasonló Class XMLReader .NET platform. Itt egy egyszerű példa segítségével TXmlReader:
Generálása egy XML fájl
Az alábbiakban a kód írásához XML fájl. (Taken a képzési program DeveLazarus blog). Felhívjuk figyelmét, hogy a DOM modulok és XMLWrite fel kell venni a felhasználási