Az XML dokumentum objektum modell, Computerpress

XML egyre inkább használják az információk tárolására, az információcsere és alkalmazások közti webes csomópontokat. Sok alkalmazásban, ezt a nyelvet használják, mint az alap, adattárolásra mások - az exportáló és importáló XML-adatokat. Ebből az következik, hogy a fejlesztők az ideje gondolkodni, hogyan lehet használni az XML-adatokat a saját alkalmazásokat.

Ebben a cikkben fogjuk megvitatni XML Document Object Model (DOM) és annak végrehajtása a Microsoft - Microsoft XML DOM.

XML DOM - az objektum modell áll a fejlesztő helyek letöltésére és feldolgozására XML-fájlokat. Az objektum modell az alábbi tárgyak: XMLDOMDocument, XMLDOMNodeList, XMLDOMNode, XMLDOMNamedNodeMap és XMLDOMParseError. Minden ilyen tárgyak (kivéve XMLDOMParseError) tartalmazza a tulajdonságok és módszerek, hogy információt kapjunk egy objektum manipulálni az objektum értékeket és szerkezete, valamint navigálni a szerkezet a XML-dokumentum.

Tekintsük az alapvető létesítmények XML DOM és néhány példát azok használatáról Borland Delphi.

Az XML DOM Borland Delphi

Annak érdekében, hogy a Microsoft XML DOM Delphi-alkalmazásokhoz szükséges, hogy csatlakozzon a projekthez típusának megfelelő könyvtár. Ebből a célból, mi végrehajtani a parancsot Project | Import Type Library párbeszédablakban Import Type Library válasszuk Könyvtár Microsoft XML 2.0-s verziója (2.0 verzió), amely általában a Windows file \ System \ Msxml.dll

XML DOM eszköz

Document Object Model egy XML-dokumentumot szerkezetfából álló ágakat. Software XML DOM interfészek lehetővé teszi az alkalmazások navigálni a dokumentum fát és manipulálni ágain. Mindegyik ág lehet egy bizonyos típusú (DOMNodeType), amelyek szerint határozzuk meg a szülő és a gyermek ágak. A legtöbb XML-dokumentumok találhatók, mint ág elem, attribútum, és a szöveget. Tulajdonságok (attribútum) egy speciális fajtája ágak és leányvállalata ágak. Ellenőrzésére használt attribútumokat speciális módszerek által biztosított XML DOM objektumokat.

Amellett, hogy alkalmazza a javasolt World Wide Web Consortium (W3C) felület, a Microsoft XML DOM módszerek, amelyek támogatják XSL XSL Patterns, névterek és adattípusok. Például a SelectNodes lehetővé teszi a használatát XSL (XSL Pattern Syntax) szintaxis sablon módszer keresni az ágak egy adott kontextusban, és TransformNode módszer támogatja XSL transzformáció elvégzésére.

Test XML-dokumentum

Példaként az XML-dokumentum take zenei katalógus CD-ROM, amely a következő szerkezetű:

Most már készen állunk, hogy fontolja meg az objektum modell XML DOM ismerete, amely indul XMLDOMDocument objektumot.

XML-dokumentum - objektum XMLDOMDocument

Munka XML-dokumentum kezdődik csizmájával. Ehhez használjuk a Load módszer, amely csak az egyik paraméter alapján az URL-t a betöltött dokumentum. Amikor indítani a helyi lemez fájl általában csak a teljes neve a fájl (protokoll: /// ebben az esetben el lehet hagyni). Ha az XML-dokumentum van tárolva egy string, a dokumentum letöltéséhez kell használni LoadXML módszer.

Hogy ellenőrizzék, hogy a dokumentum betöltése (szinkron vagy aszinkron) használunk Async tulajdon. Alapértelmezés szerint ez a tulajdonság True értékre van állítva, jelezve, hogy a dokumentum betöltése aszinkron vezérlés visszakerül az alkalmazás, mielőtt teljesen le. Ellenkező esetben a dokumentum betöltése szinkronban, és akkor meg kell ellenőrizni az érték readyState, hogy megtanulják, töltse le a dokumentumot, vagy sem. Ön is létrehozhat egy felvezető onreadystatechange esemény, amely megkapja a vezérlést, ha az érték az ingatlanok readyState.

Az alábbiakban bemutatjuk, hogyan kell betölteni az XML-dokumentum a Load módszer:

Ha a dokumentum betöltve, akkor olvassa el a tulajdonságait. Tehát NODENAME tulajdonság fogja tartalmazni az értéket #document, NodeTypeString tulajdon - érték dokumentum URL tulajdon - értékét file: /// C: /DATA/DATA.xml.

feldolgozás oshibok

Különösen érdekesek azok a tulajdonságok kapcsolódó feldolgozó dokumentum, ha be van töltve. Tehát ParseError XMLDOMParseError tulajdonság visszaadja egy objektum, amely információkat tartalmaz egy hibát, amely történt a feldolgozás a dokumentumot.

Írni hibakezelő, akkor adja meg a következő kódot:

Ahhoz, hogy megtudja, milyen információkat vissza hiba esetén változtassa meg a következő könyvtárat bejegyzést:

eltávolítjuk a záró tag A második sor:</p> <p>Most írjuk be a kódot, amely visszaadja az értékeket XMLDOMParseError objektum tulajdonságai:</p> <p>és mi fut alkalmazás. Ennek eredményeként kapjuk az alábbi információkat a hibát.</p> <p>Mint látható ebben a példában a visszaadott objektum XMLDOMParseError elég információt, hogy keresse meg a hibát, és hogy megértsék az oka annak előfordulása.</p> <p>Most helyreállítani a záró tag <TITLE> Az ebben a dokumentumban, és folytatni fogjuk megvitatni XML DOM.</p> <h2>Hozzáférés a dokumentum-fa</h2> <p>Ahhoz, hogy a dokumentum-fa, akkor sem kap a gyökér elem, majd menj át a kapcsolt ágak, vagy talál valami speciális ága. Az első esetben megkapjuk a gyökér elem révén DocumentElement visszaadó tulajdonság egy objektum típusú XMLDOMNode. Az alábbiakban bemutatjuk, hogyan kell használni DocumentElement tulajdonság annak érdekében, hogy a tartalmát minden gyermek:</p> <p>A mi XML-dokumentum, megkapjuk a következő szöveget.</p> <p>Ha érdekel néhány adott ág vagy ágazati szinten, az első alá leányvállalata ágak, fel tudjuk használni bármilyen módszerrel NodeFromID, akár getElementByTagName XMLDOMDocument objektumot.</p><p>NodeFromID módszer megköveteli egy olyan egyedi azonosítóval meghatározott XML Schema vagy Document Type Definition (DTD), és visszatér egy ág az azonosító.</p> <p>GetElementByTagName módszer megköveteli egy sort egy adott elem (tag) és visszaadja az összes ágak ezt az elemet. Az alábbiakban bemutatjuk, hogyan kell használni ezt a módszert, hogy megtalálja a művészek a katalógusban CD-ROM:</p> <p>A mi XML-dokumentum, megkapjuk a következő szöveg</p> <p>Vegye figyelembe, hogy SelectNodes XMLDOMNode objektum módszer rugalmasabb módon a dokumentum eléréséhez ágak. De ezen az alábbiakban.</p> <h2>Branch a dokumentum - objektum XMLDOMNode</h2> <p>XMLDOMNode objektum egy ága a dokumentumot. Már találkoztunk ezt a tárgyat, amikor megkapta a gyökér eleme a dokumentumot:</p> <p>További információt az XML-dokumentum ág, akkor az objektum tulajdonságok XMLDOMNode (táblázat. 1).</p> <h3>Mozgás a dokumentum-fa</h3> <p>XMLDOMNode objektum számos módon eligazodni a dokumentum fát. Például, hogy hozzáférjen a szülő ág a ParentNode tulajdonság (típus XMLDOMNode) való hozzáférést, gyermek ágak révén tulajdonságok ChildNodes (típus XMLDOMNodeList) FirstChild és LastChild (típus XMLDOMNode) stb OwnerDocument tulajdonság visszaadja egy objektum típusú XMLDOMDocument azonosította magát az XML-dokumentum. A fenti tulajdonságok teszik könnyű eligazodni a dokumentum fát.</p> <p>Most nézzük át minden ágát az XML-dokumentumot:</p> <p>Mint fentebb említettük, SelectNodes XMLDOMNode objektum egy rugalmasabb módon hozzáférni a ágai a dokumentumot. Ezen kívül van SelectSingleNode módszer, amely visszaadja csak az első ága a dokumentumot. Mindkét módszer lehetővé teszi, hogy meghatározza a XSL-sablonokat keresni ágak.</p> <p>Tekintsük SelectNodes módszer segítségével a folyamat kivonat az ágakat, hogy van egy CD-ág és alcsoport ÁR:</p> <p>A csomópontok gyűjtemény kerül az összes al-ág ÁR CD ágak. Megvitatni XSL-sablon vissza később.</p> <h3>Manipuláció kirendeltségbõl</h3> <p>Ahhoz, hogy manipulálni leányvállalata ágak, tudjuk használni a módszereket XMLDOMNode objektum (táblázat. 2).</p> <p>Annak érdekében, hogy teljesen eltávolítani a rekord az első lemez, meg kell futtatni a következő kódot:</p> <p>Figyeljük meg, hogy ebben a példában, vegyük ki az első gyermek ága. Hogyan lehet eltávolítani az első eleme az első leányvállalat ága az alábbiakban mutatjuk be:</p> <p>A fenti példában, levettük nem az első ág <CD>...</CD>, és az első ág elem - <TITLE>....

Most egy új ága. A következő kód azt mutatja, hogyan kell egy új rekordot a zenei CD-ROM:

A fenti kód az alábbi műveletek sorát, hogy egy új ága:

  • Ahhoz, hogy hozzon létre egy új ága által CreateNode:
    • létrehozása CreateNode elem módszer;
    • hozzáadunk egy elemet a módszer ágak AppendChild;
    • beállítási értékeket keresztül tagja Text tulajdonság;
    • ... ismételje meg az összes elemet.
  • Új ág által a dokumentumnak AppendChild.

Emlékezzünk vissza, hogy AppendChild eljárás hozzáad egy ág végére a fa. Ahhoz, hogy hozzá egy ága a fa egy adott helyen, akkor kell használni insertBefore módszer.

transzformáció

Két módszer XMLDOMNode objektum - TransformNode és TransformNodeToObject - lehet használni átalakítása egy leágazó vezeték vagy tárgy. Ezek a módszerek alapulnak XSL-szintaxis.

fióktelepeinél - objektum XMLDOMNodeList

XMLNodeList objektum listát tartalmaz, ágakat, amelyek módszerekkel összeállíthatók SelectNodes vagy getElementsByTagName, valamint a tulajdonságokat nyert ChildNodes.

Már tárgyalt a használata az objektum az adott példában a „Navigáció a dokumentum-fa” részben. Itt adunk néhány elméleti megjegyzések.

A fiókok száma a listában lehet beszerezni, mint egy ingatlan értéke hossza. Az ágak indexei 0 hossz-1, és az egyes elkülönített ága keresztül elérhető Tétel elem tömb egy megfelelő index.

Navigáljon Az ágak listáját is elvégezhető NextNode metódus visszaadja a következő ág a listán, vagy Nil, ha az aktuális ág - az utolsó. Hogy visszatérjen a lista elejére, hívja visszaállítása módszer.

Létrehozása és a dokumentumok mentése

Tehát megnéztük, hogyan lehet hozzáadni ágak és elemek a meglévő XML-dokumentumokat. Most hozzunk létre egy XML-dokumentum "on the fly". Először is, arra gondolunk, hogy a dokumentum letölthető nemcsak a URL-t és a szokásos vonalat. A következő példa, hogyan kell létrehozni egy gyökér elem, amely aztán felhasználható, hogy dinamikusan építeni a többi elem (hogy már tárgyalt a „Manipulation leányvállalata ágak”, fent):

Megépítése után az XML-dokumentumok egy fájlba módszerrel mentése. Például:

Emellett való takarékoskodás a Save metódus a fájl lehetővé teszi, hogy mentse az XML-dokumentumot egy új létesítmény XMLDOMDocument. Ebben az esetben van egy teljes dokumentum feldolgozás, és ennek következtében ellenőrzését annak szerkezete és szintaxis. Az alábbiakban bemutatjuk, hogyan kell menteni a dokumentumot egy másik objektum:

Összefoglalva, a Save a módszer lehetővé teszi, hogy mentse az XML-dokumentum más COM-objektum, amely támogatja a istream_FAR felületek, vagy IPersistStream IPersistStreamInit.

Használata XSL-sablon

Beszélgetés a módszer SelectNodes tárgy XMLDOMNode, szóltunk a tény, hogy egy rugalmasabb módon hozzáférni a ágai a dokumentumot. A rugalmasság abban a tényben rejlik, hogy mint kritérium a választás az ágak, megadhatja az XSL-sablon. Ezek a sablonok olyan erőteljes mechanizmus információk megtalálása az XML-dokumentumokat. Például, hogy egy listát az összes címet a zenei CD-ROM-ot a könyvtárba, akkor futtassa a következő lekérdezést:

Ahhoz, hogy megtudja, mi vezérli a művészek megjelent az Egyesült Államokban, egy kérés keletkezik az alábbiak szerint:

Az alábbiakban bemutatjuk, hogyan lehet megtalálni az első hajtás a könyvtárban:

Találni egy Bob Dylan-lemezek, akkor futtassa a következő lekérdezést:

és így egy listát vezeti után gyártott 1985-ben, hajtsa végre az alábbi lekérdezést:

Az XSL, egyszerűen hozzon létre egy sablont (vagy annak egy stíluslap), ami azt jelzi, hogy mit és hogyan kell átalakítani. Ezután helyezzük a sablont a katalógusból - és már kész is: a szöveg az előttünk-XSL sablon, amely átalakítja a katalógusban szereplő táblázatban (lásd a 2. listát).

Kód alkalmazására XSL-sablont a könyvtárba így néz ki:

Befejezésül a vita a XSL, azt kell mondanunk, hogy jelenleg ez a nyelv széles körben használják az átalakulás különböző XML-dokumentumokat, valamint a dokumentum formázását.

következtetés

Nyilvánvaló okokból, egyetlen cikket nem terjed ki az összes tárgyat a Microsoft XML DOM és ad példát azok használatát. Itt már csak érintették a legfontosabb kérdések az XML DOM alkalmazásokban. Táblázat. A 3. ábra az összes olyan objektumot megvalósított Microsoft XML DOM.

Cougar Újabban a vállalat bevezette az új sorozat tápegységek hagyományos PC-k - VTX, célozza meg a felhasználók a korlátozott költségvetéssel. Ez a felülvizsgálat modell Cougar VTX600 kell tekinteni, hogy mivel annak jellemzőit az egyik legnépszerűbb a sorban a tápegységek

Az évente megrendezésre kerülő esemény kapszaicin SIGGRAPH Los Angeles, az AMD megerősítette pozícióját a PC-piac a high-end új processzorok Ryzen Threadripper és GPU «Vega»

Egy egyszerű és kényelmes építési hétköznapi felhasználók hálózati cég ZyXEL kiadta a következő változat az internetes csomópont csatlakozik a 3G / 4G hálózatok USB-modem Wi-Fi hozzáférési pont - ZyXEL Keenetic 4G III, amit úgy ez a felülvizsgálat

Ahhoz, hogy az ő és így egy nagy család router és router cég ASUS nemrég hozzáadott két nagyon érdekes modell: a zászlóshajó 4G-AC55U és könnyebb 4G-N12. Ebben a cikkben a zászlóshajó modelljét ASUS 4G-AC55U figyelembe kell venni

Fiatal, de ambiciózus cég Krez idén kiadott egy új, eredeti modell laptop Krez Ninja (modell TM1102B32) Windows 10. Mivel ez a számítógép egy forgatható képernyő, ez szolgál egy univerzális megoldás - sikeresen lehet alkalmazni a munkát, és tanulmányi és játékhoz

Ha például gyakran nyomtat fényképeket és már fáradt változtatni tintapatronokat a nyomtatóban, nézd meg az MFP Epson L850. A hatalmas erőforrás fogyóeszközök, a kiváló nyomtatási minőséget, széles körű funkciók - ez csak néhány előnye ennek a modellnek