XML este tot mai mult utilizate pentru a stoca informații, schimbul de informații între aplicații și noduri bazate pe Web. În multe aplicații, această limbă este folosită ca bază pentru stocarea de date, în altele - pentru exportul și importul XML-date. Din aceasta rezultă că timpul dezvoltatorii să se gândească la modul în care puteți utiliza XML-date în propriile lor aplicații.
In acest articol vom discuta despre document XML Object Model (DOM) și punerea sa în aplicare de către Microsoft - Microsoft XML DOM.
DOM XML - este modelul de obiect disponibil pentru site-urile de dezvoltatori pentru descărcarea și procesarea XML-fișiere. Modelul obiect este format din următoarele obiecte: XMLDOMDocument, XMLDOMNodeList, XMLDOMNode, XMLDOMNamedNodeMap și XMLDOMParseError. Fiecare dintre aceste obiecte (cu excepția XMLDOMParseError) conține proprietățile și metodele pentru a obține informații despre un obiect manipula valorile obiect și structura, precum și naviga prin structura XML-document.
Luați în considerare de bază DOM XML și facilități pentru a da câteva exemple de utilizare a acestora în Borland Delphi.
Utilizarea DOM XML în Borland Delphi
Pentru a utiliza Microsoft DOM XML în Delphi-aplicații care trebuie să se conecteze la proiect corespunzătoare bibliotecii de tip. În acest scop, vom realiza Proiectul de comandă | Tipul de import Biblioteca din caseta de dialog Import Type Library, selectați Biblioteca Microsoft versiunea XML 2.0 (versiunea 2.0), care este de obicei localizat în fișierul Windows \ System \ Msxml.dll
Dispozitiv XML DOM
Document Object Model este un XML document ca un arbore structură formată din ramuri. Software-ul interfețe XML DOM permite aplicațiilor pentru a naviga arborele de documente și să manipuleze ramurile sale. Fiecare ramură poate avea un anumit tip (DOMNodeType), care sunt determinate conform ramurilor mamă și copil. În cele mai multe XML-documente pot fi găsite, cum ar fi elementul de ramură, atribut, și text. Atributele (atribut) sunt un tip special de sucursale și filiale sunt subsidiare. Pentru a controla atributele utilizate metode speciale furnizate de obiecte XML DOM.
Pe lângă implementarea interfeței recomandate World Wide Web Consortium (W3C), Microsoft XML DOM prevede metode care susțin XSL, modele XSL, Namespaces și tipuri de date. De exemplu, SelectNodes permite utilizarea XSL (XSL model Sintaxa) metoda șablon de sintaxă pentru a căuta ramurile unui anumit context și metoda TransformNode suportă transformări XSL pentru a efectua.
Testul XML document
Ca un exemplu al XML-document de catalog Descarcă muzică CD-ROM-ul, care are următoarea structură:
Acum suntem gata să ia în considerare modelul de obiect XML DOM, familiaritate cu care se va începe cu obiectul XMLDOMDocument.
XML Document - XMLDOMDocument obiect
Lucrul cu XML-document începe cu cizma. Pentru a face acest lucru, vom folosi metoda de încărcare, care are doar un singur parametru care indică adresa URL a documentului încărcat. Atunci când pornirea dintr-un fișier de pe disc local, specifică doar numele complet al fișierului (protocolul file: ///, în acest caz, poate fi omisă). În cazul în care XML documentul este stocat ca un șir de caractere, pentru a descărca acest document ar trebui să fie utilizat metoda loadXML.
Pentru a controla modul în care este încărcat (sincron sau asincron) documentul este utilizat asincronă de proprietate. În mod implicit, această proprietate este setată la True, care indică faptul că documentul este încărcat asincronă și controlul este returnat la cererea înainte de a fi complet descărcat. În caz contrar, documentul este încărcat sincron, și apoi avem nevoie pentru a verifica valoarea readyState, pentru a învăța, descărcați documentul sau nu. Puteți crea, de asemenea, un eveniment handler onreadystatechange, care devine de control atunci când valoarea proprietăților readyState.
Următoarele prezintă modul de încărcare XML-document folosind metoda de încărcare:
Odată ce documentul este încărcat, ne putem referi la proprietățile sale. Deci, numenod proprietate va conține #document valoare, NodeTypeString de proprietate - documentul de valoare, proprietatea URL - valoarea fișierului: /// C: /DATA/DATA.xml.
oshibok de prelucrare
De interes particular sunt proprietățile asociate cu procesarea documentului, atunci când acesta este încărcat. Deci, ParseError XMLDOMParseError proprietate returnează un obiect care conține informații despre o eroare care a avut loc în timpul procesării documentului.
Pentru a scrie un handler de eroare, puteți adăuga următorul cod:
Pentru a afla ce informații este returnat în caz de eroare, modificați următoarea intrare de director:
îndepărtarea elementului de închidere
Acum scrie codul care returnează valorile XMLDOMParseError proprietățile obiectului:
și vom rula aplicația noastră. Ca rezultat, vom obține următoarele informații despre eroarea.
După cum se poate observa din acest exemplu, obiectul returnat XMLDOMParseError suficiente informații pentru a localiza eroarea și pentru a înțelege motivul apariției sale.
Acum restabiliți elementul de închidere
Accesul la arborele de documente
Pentru a avea acces la arborele de documente, puteți obține fie elementul rădăcină și apoi du-te prin intermediul sucursalelor sale afiliate, sau pentru a găsi o anumită ramură specifice. În primul caz vom obține elementul rădăcină prin proprietatea documentElement care returnează un obiect de tip XMLDOMNode. Următoarele arată modul de utilizare documentElement de proprietate, în scopul de a obține conținutul fiecărui copil:
Pentru nostru XML document, vom obține următorul text.
Dacă suntem interesați în unele ramură sau la nivel de ramură de mai jos primele ramuri subsidiare, putem folosi orice NodeFromID metodă, fie prin obiect GetElementByTagName XMLDOMDocument.
Metoda NodeFromID necesită un identificator unic așa cum este definit în XML Schema sau Document Type Definition (DTD) și returnează o ramură cu acest ID.
Metoda GetElementByTagName necesită o linie telefonică cu un anumit element (tag-ul) și returnează toate ramurile cu acest element. Următoarele arată cum se utilizează această metodă pentru a găsi toți artiștii din catalogul nostru CD-ROM:
Pentru nostru XML document, vom obține următorul text
Rețineți că metoda obiect SelectNodes XMLDOMNode oferă un mod mai flexibil pentru a avea acces la ramurile documentului. Dar pe acest lucru mai jos.
Filiala a documentului - XMLDOMNode obiect
obiect XMLDOMNode este o ramură a unui document. Am întâmpinat deja acest obiect atunci când primesc elementul rădăcină al documentului:
Pentru informații despre ramura XML-document, puteți utiliza proprietățile obiectului XMLDOMNode (Tabel. 1).
Navigarea arborele de documente
obiect XMLDOMNode oferă mai multe moduri de a naviga prin arborele de documente. De exemplu, pentru a accesa ramura mamă utilizată parentNode de proprietate (de tip XMLDOMNode), accesul la ramuri copilului prin proprietăți childNodes (tip XMLDOMNodeList), firstChild și lastChild (tip XMLDOMNode) etc. proprietate OwnerDocument returnează un obiect de tip XMLDOMDocument se identifica XML document. proprietățile de mai sus face mai ușor pentru a naviga prin arborele de documente.
Acum, să ne uităm peste toate ramurile XML-document:
După cum sa menționat mai sus, SelectNodes XMLDOMNode obiect oferă un mod mai flexibil pentru a avea acces la ramurile documentului. În plus, există metode care returnează numai prima ramură a documentului SelectSingleNode. Ambele metode permit să specificați XSL-șabloane pentru a căuta ramuri.
Luați în considerare metoda SelectNodes de utilizare a procesului pentru a extrage toate ramurile care au o sucursală CD-uri și preț subbranch:
Colecția Nodurile vor fi plasate toate ramurile PRICE CD subramură. Pentru a discuta despre XSL-șabloane înapoi mai târziu.
ramuri de manipulare afiliate
Pentru a manipula ramuri subsidiare, putem folosi obiectul metode XMLDOMNode (tabelul. 2).
Pentru a elimina complet înregistrarea primului disc, trebuie să executați următorul cod:
Rețineți că, în acest exemplu, vom elimina prima filiala copil. Cum de a elimina primul element al primei sucursale filialei este prezentată mai jos:
In exemplul de mai sus, nu am eliminat prima ramură
Acum, se adaugă o nouă ramură. Codul de mai jos arată cum să adăugați un nou record la muzica CD-ROM-ul:
Codul de mai sus arată următoarea secvență de operații pentru adăugarea unei noi ramuri:
- Pentru a crea o nouă ramură de CreateNode:
- creând metoda elementului CreateNode;
- adăugarea unui element la metoda appendChild ramuri;
- prin stabilirea de valori de proprietate membru text;
- ... se repetă pentru toate elementele.
- Adăugați o nouă sucursală la documentul de appendChild.
Să ne amintim că metoda appendChild adaugă o ramură la sfârșitul arborelui. Pentru a adăuga o ramură a arborelui într-o anumită locație, trebuie să utilizați metoda insertBefore.
transformare
Două metode XMLDOMNode obiect - TransformNode si TransformNodeToObject - pot fi utilizate pentru transformarea unei linii de ramură sau obiect. Aceste metode se bazează pe XSL-sintaxa.
ramuri set - XMLDOMNodeList obiect
Lista obiectelor XMLNodeList conține ramuri care pot fi construite folosind metode SelectNodes sau getElementsByTagName, precum și proprietăți obținute din childNodes.
Am discutat deja utilizarea obiectului în exemplul dat în secțiunea „Navigarea arborele de documente“. Aici vom da câteva observații teoretice.
Numărul de sucursale din listă pot fi obținute ca valoarea unei proprietăți de lungime. Ramurile au indici 0 la lungime-1, și fiecare ramură separată accesibilă prin intermediul elementului Articol matrice cu un index corespunzător.
Navigați lista de sucursale pot fi, de asemenea, realizată folosind metoda NextNode returnează ramura următor din listă, sau Nil, în cazul în care filiala actuală - ultima. Pentru a reveni la partea de sus a listei, apelați metoda de resetare.
Crearea și salvarea documentelor
Așa că ne-am uitat la modul în care puteți adăuga sucursale și elemente în documentele XML-existente. Acum, să creeze XML documentul „on the fly“. În primul rând, ne amintim că documentul poate fi descărcat nu numai de la URL-ul, și de la linia obișnuită. Următoarele ilustrează modul de a crea un element rădăcină, care pot fi apoi folosite pentru a construi dinamic celelalte elemente (pe care le-am discutat deja în „ramurile Manipulation subsidiare“ de mai sus):
Dupa construirea XML-documentele sunt salvate într-un fișier folosind metoda de Salvare. De exemplu:
Pe lângă economisirea în metoda Salvare a fișierului vă permite să salvați XML documentul într-o nouă facilitate de XMLDOMDocument. În acest caz, există o procesare completă a documentelor și, ca o consecință, verificarea structurii și sintaxa. Următoarele arată cum să salvați documentul într-un alt obiect:
În concluzie, metoda Salvare, de asemenea, vă permite să salvați XML documentul în alte COM-obiecte care acceptă interfețele istream, sau IPersistStream IPersistStreamInit.
Utilizarea XSL-șabloane
Discutând despre metoda SelectNodes XMLDOMNode obiect, am menționat faptul că acesta oferă un mod mai flexibil pentru a avea acces la ramurile documentului. Flexibilitatea constă în faptul că, drept criteriu pentru alegerea ramurilor, puteți specifica XSL-șablon. Aceste șabloane oferă un mecanism puternic pentru a găsi informații în XML-documente. De exemplu, pentru a obține o listă cu toate titlurile de muzica pe CD-ROM-ul în directorul nostru, aveți posibilitatea să executați următoarea interogare:
Pentru a afla ce conduce artiști lansat în Statele Unite, o cerere este generat după cum urmează:
Următoarele arată cum să găsească prima unitate în directorul:
Pentru a găsi un discuri Bob Dylan, aveți posibilitatea să executați următoarea interogare:
și pentru a obține o listă de unități fabricate după 1985, vom efectua următoarea interogare:
Folosind XSL, vom crea pur și simplu un șablon (sau o foaie de stil), care indică ce și cum să se convertească. Apoi, introducerea șablonul pe catalogul nostru - și ați terminat: textul în fața noastră-șablon XSL care convertește catalogul în tabel (a se vedea Listarea 2).
Cod pentru aplicarea XSL-șablon în directorul nostru arata ca acest lucru:
Pentru a încheia discuția noastră a XSL, trebuie spus că, în prezent, această limbă este utilizată pe scară largă pentru transformarea între diferite XML-documente precum și formatarea documentului.
concluzie
Din motive evidente, un singur articol nu poate acoperi toate obiectele Microsoft XML DOM și să dea exemple de utilizare a acestora. Aici ne-am atins doar problemele majore ale utilizării DOM XML în aplicații. Tabel. 3 prezintă toate obiectele puse în aplicare în Microsoft DOM XML.
Cougar Mai recent, compania a introdus o nouă serie de surse de alimentare pentru PC-uri tradiționale - VTX, destinate utilizatorilor cu bugete limitate. Acest model de revizuire Cougar VTX600 va fi considerat că, datorită caracteristicilor sale este una dintre cele mai populare în linia de surse de alimentare
La eveniment anual Capsaicina SIGGRAPH din Los Angeles, AMD și-a consolidat poziția pe piața PC-uri pentru high-end, cu noi procesoare Ryzen Threadripper și GPU «Vega»
Pentru o construcție simplă și convenabilă a utilizatorilor obișnuiți companie de rețea ZyXEL a lansat urmatoarea versiune a platformei sale de Internet pentru conectarea la rețelele 3G / 4G prin USB-modem cu punct de acces Wi-Fi - ZyXEL Keenetic 4G III, pe care le considerăm în această recenzie
Pentru două modele sale și astfel o mare familie de routere ASUS și compania router a adaugat recent foarte interesant: nava amiral 4G-AC55U și mai ușor 4G-N12. În acest articol, modelul de top al ASUS 4G-AC55U vor fi luate în considerare
Young dar ambitioasa companie KREZ la inceputul acestui an a lansat un nou, model de laptop original, KREZ Ninja (modelul TM1102B32) care rulează Windows 10. Deoarece acest computer are un ecran pivotant, acesta poate servi ca o soluție universală - poate fi folosit cu succes pentru muncă, și pentru studiu și pentru a se juca
Dacă imprimați frecvent fotografii și obosit deja pentru a schimba cartușele de cerneală în imprimantă, uita-te la MFP Epson L850. O mare resursa de consumabile, o calitate excelentă a imprimării, o gamă largă de caracteristici - acestea sunt doar câteva dintre avantajele acestui model