Una funzione per leggere più file Xml in una pagina

Autore: Luca Ruggiero | Tell a Friend

Corso XML
Creazione di strutture XML, XSL ed altri linguaggi eXtensible!

Sulla scorta dell'Articolo Leggere un file Xml con l'oggetto XMLDOM vediamo adesso come leggere più di un file Xml in una sola pagina, ovvero senza creare più oggetti XMLDOM che finiscono per richiedere maggior sforzo da parte del server Web. E' sufficiente includere il codice Asp in una funzione che chiameremo XmlGlobal() a cui è sufficiente passare due parametri (file ovvero il nome del file Xml a cui far riferimento, e nodo ovvero il percorso del nodo Xml che intendiamo raggiungere).

Di seguito i codici dei due file Xml:

<?xml version="1.0"?>
<!-- Nome file: alfa.xml -->
<database>
    <record>
        <alfa>A</alfa>
    </record>
    <record>
        <alfa>B</alfa>
    </record>
    <record>
        <alfa>C</alfa>
    </record>
</database>
<?xml version="1.0"?>
<!-- Nome file: num.xml -->
<database>
    <record>
        <num>1</num>
    </record>
    <record>
        <num>2</num>
    </record>
    <record>
        <num>3</num>
    </record>
</database>
Di seguito, invece, il codice della pagina Asp chiamante:
<%@LANGUAGE = JScript%>
<%
    function XmlGlobal(file, nodo)
    {
        var xmldom = new ActiveXObject("Microsoft.XMLDOM");
        xmldom.async = false;
        xmldom.load(Server.MapPath(file));
        var leggi = xmldom.getElementsByTagName(nodo);
        for (var i=0; i<leggi.length; i++)
        {
            Response.Write("<li>" + leggi[i].text + "</li>");
        }
    }
%>
<html>
    <head>
        <title>Una funzione per leggere più file Xml in una pagina</title>
    </head>
<body>

<p><b>Lettere</b></p>
<ul><%=XmlGlobal("alfa.xml", "record/alfa")%></ul>

<p><b>Numeri</b></p>
<ul><%=XmlGlobal("num.xml", "record/num")%></ul>

</body>
</html>
In grassetto è evidenziato il metodo con cui vengono utilizzati i parametri passati alla funzione chiamante, ovvero il cuore dell'applicazione.

IN EVIDENZA
HOT LINKS