giovedì 8 maggio 2014

Iniziamo XMLDOM

Apriamo un semplice file XML con XMLDOM.

Usiamo IE.

Buttiamo giù il codice JavaScript.
var mioXml = new ActiveXObject("Microsoft.XMLDOM");
mioXml.async=false;
Non mi importa di dire fesserie, vado per ipotesi a valanga, suscettibili di correzioni e integrazioni successive:
Adesso carico il file:
var mioXml = new ActiveXObject("Microsoft.XMLDOM");
mioXml.async=false;
mioXml.load("doc.xml");
Adesso mi posiziono sulla radice del documento:
var mioXml = new ActiveXObject("Microsoft.XMLDOM");
mioXml.async=false;
mioXml.load("doc.xml");
var radice=mioXml.documentElement;
E adesso che mi sono posizionato, che faccio?

Provo a mettere in opera alcune istruzioni per manipolare il file XML:
nodeName che restituirebbe il nome del nodo.
Essendo posizionato sulla radice, mi dovrebbe restituire il nome del tag radice.
var mioXml = new ActiveXObject("Microsoft.XMLDOM");
mioXml.async=false;
mioXml.load("doc.xml");
var radice=mioXml.documentElement;
var nome=radice.nodeName;
alert(nome);
Ottengo messaggi di errore, finché scopro il motivo: il documento non è valido perché è così formato:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE capitolo [
<!ELEMENT capitolo (paragrafo?)>
<!ELEMENT paragrafo (#PCDATA)>
]>
<capitolo>
 <paragrafo>
  Ciao, ciccio.
 </paragrafo>
 <paragrafo>
 </paragrafo>
</capitolo> 
Provando con il mitico validatore svelo l'arcano: nel DTD c'è un punto interrogativo che esprime un numero di occorrenze del tag paragrafo da 0 a 1 volta, e invece esso è rappresentato due volte!
Correggo, e ottengo il risultato giusto: una casella di avviso con scritto
capitolo


Adesso esploro tutti i metodi che mi permettono di manipolare il documento XML in Internet Explorer...

Nessun commento:

Posta un commento