Creați, modificați documente xml cu java dom, dev64

Am scris deja o dată despre formatarea XML. Pentru formatare, DOM a fost folosit, XML a fost convertit într-un document DOM și formatat folosind biblioteca Apache Xerces. Astăzi folosesc codul de formatare pentru depanare. Problema este că voi face experimente cu structura XML-e. Ie Voi crea în mod programatic un document DOM și îl voi afișa ca XML ... De ce am nevoie de el? S-ar părea că există multe instrumente minunate pentru lucrul cu XML. Cu toate acestea, majoritatea instrumentelor permit doar parsarea XML într-un model pre-generat sau ieșirea modelului terminat ca fișier XML.







Trebuie să schimb dinamic XML. Ie Este necesar ca documentul XML să se modifice dinamic în timpul execuției programului. Operațiile efectuate pe fișierul XML trebuie să afecteze operațiile ulterioare ale programului ... Pentru aceasta, am să folosesc API-ul XPath. Dar aceasta este încă o problemă a viitorului. Acum, să începem cu experimente elementare. Mai întâi, să luăm din articolul de mai sus o clasă pentru formatarea XML.







Eu adaug biblioteca Apache Xerces folosita pentru formatare si junit in dependenta Maven pentru a face teste unitare.

Adăugarea unui element la un document DOM

Primele trei linii ale textului de mai sus creează un document gol, linii

creați un element rădăcină al unui document XML numit root.

Un pic de teorie. În modelul DOM, documentul constă din noduri (noduri) de diferite tipuri:

În tehnologie extremă XPath suportă aceste tipuri de noduri și este proiectat să funcționeze cu documente DOM. După cum puteți vedea, elementul este o etichetă de documente normală XML. Atributele par a fi următorul document. lang este un atribut cu valoarea "xml".

Să încercăm să adăugăm un atribut documentului nostru din primul exemplu.

Testez, am o eroare neașteptată:

Se pare că există o funcție separată care stabilește atributul elementului.

Adăugarea unui atribut la un element

Apelarea root.setAttribute ("lang", "en") adaugă un atribut numit lang și valoarea "en" la elementul rădăcină:

Adăugarea unui element copil

Pentru a verifica modul în care este analizat documentul cu secțiunea CDATA, adaug încă un test:

Linia de cod de mai jos va converti documentul XML generat într-un șir, apoi înapoi
în modelul DOM și din nou în linia șirului ... și ieșire ca șir.


Rezultatul șirului = XmlUtil.toXML (XmlUtil.fromXML (XmlUtil.toXML (document))));

Secțiunea CDATA paraușată în mod normal.







Articole similare

Trimiteți-le prietenilor: