Home| Progetto| Web| Faq| Acronimi | ||||
Argomenti Documenti pubblicabili:1120
Scripts:1282 Documenti non pubblicabili:162 Categorie tematiche:68 .Net |_C# |_Visual basic.net |_Asp.net Active Server Pages C++ Cascade Style Sheet JavaScript Mysql Php Xml Java |_Java 2 Micro Edition |_Java server pages |_Java Servlet Oracle |_PLSQL PostgreSQL Unix
Xml...
Info:
Le cinque entità predefinite in XML
Oracle...
Script:
Redo log
Unix...
Tip:
Eseguire più comandi in una sola linea
PLSQL...
Script:
TYPE TABLE
Xml...
Tip:
Operatori in xsl
Xml...
Faq:
What is XHTML?
Shell scripting...
Script:
Script for archiving and compressing folder and file
A User Agent, like a web browser, uses HTTP to request a HTML document
Php Funzione mail()
In programming the danger of exploring the small details of coding is that you get obsessed with every line of code you write, thereby greatly reducing productivity.
In general, is not worth obsessing over code. On the other hand you should code with deliberation and intent. Steven Feurstein Oracle Magazine July /August 2004 A User Agent, like a web browser, uses HTTP to request a HTML document
|
Xml
Home >Xml > Iniziare con Xml
ObiettivoQuesto documento prende in esame alcune tecniche di iterazione tra codice javascript e documento Xml. La tecnologia utilizza l'oggetto ActiveX Microsoft.XMLDOM pertanto il codice riportato funziona su browser Microsoft Explorer (Testato con vers. 5 e superiori). Per visualizzare l'output dei processi descritti in questo tutorial caricare questo file, e occorre naturalmente abilitare Explorer all'esecuzione di Javascript. E' possibile scaricare in formato zip i file sorgenti utilizzati per questo tutorial.PrerequisitiPer questo tutorial è utile la conoscenza di Javascript e almeno delle nozioni di base sul linguaggio Xml.Documento XmlIl documento libri.xml composto dal nodo principale <libri> che contiene 4 figli, ovvero gli elementi inclusi nei tag libro.Il documento Xml deve essere naturalmente valido.
<?xml version="1.0" encoding="utf-8" ?>
<libri> <libro stato="Canada" prezzo="8" > <nome>William</nome> <cognome>Gibson</cognome> <titolo>Neuromancer</titolo> <anno>1984</anno> </libro> <libro stato="Stati Uniti" prezzo="7"> <nome>Bruce</nome> <cognome>Sterling</cognome> <titolo>The Hacker Crackdown: Law And Disorder on the Electronic Frontier </titolo> <anno>1992</anno> <note>A compelling piece of work</note> </libro> (... ...)</libri> Inoltre alcuni tag <libro> possegono degli attributi(stato, prezzo) e i valori relativi. Caricamento documento XmlPrima di tutto viene creato un oggetto XMLDOM ricorrendo appunto alla tecnologia ActiveX. Solo se questa tecnologia è disponibile al browser lo script procede al caricamento dei dati XML, altrimenti il controllo su window.ActiveXObject con un messaggio informa l'utente dell'impossibilità di procedere con lo script:
if (window.ActiveXObject){
... }else{ alert("Spiacente per questo tutorial occorre Microsoft Explorer"); return false; } } Si può ricorrere a due oggetti messi a disposizione dalla Microsoft XMLDOM oppure FreeThreadedXMLDOM. Per instazializzare questi oggetti: var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); var xmlDoc = new ActiveXObject("Microsoft.FreeThreadedXMLDOM"); Di fatto si comportano in maniera uguale (utilizzano gli stessi metodi) , la versione FreeThreaded offre una migliore performance grazie al suo algoritmo di parsing.
<script language="javascript" type="text/javascript">
<!-- function loadXML(xmlFile) { if (window.ActiveXObject){ var xmlDoc = new ActiveXObject("Microsoft.FreeThreadedXMLDOM"); xmlDoc.async="false"; xmlDoc.load(xmlFile); xmlObj=xmlDoc.documentElement; alert(xmlObj.xml); // Visualizzazione del file XML }else{ alert("Spiacente per questo tutorial occorre Explorer"); return false; } } loadXML('libri.xml'); //--> </script> La proprietà boleana async determina se consentire il download asincrono del file Xml. Di default è true indicando che il metodo load restituisce un controllo prima che il download sia terminato. Se impostato a true si può utilizzare la proprietà readyState per determinare quando il download è completato. In questo esempio async viene impostato false in modo che il documento venga completamente caricato prima che la funzione chiamante riacquisti controllo. Per verificare con i nostri occhi il successo del caricamento dei dati Xml si può utilizzare un'istruzione come: alert(xmlObj.xml); Ovvero utilizzare il metodo xml dell'oggetto Microsoft.FreeThreadedXMLDOM, che visualizza appunto il documento Xml nel suo intero. Mentre il metodo text permette di stampare i valori inclusi nei tag: alert(xmlObj.text); I nodi figli (childNodes)Il metodo childNodes permette di accedere ai nodi figli del documento Xml. L'attributo length determina il numero di figli di uno specificato nodo. Per ricavare il numero dei figli principali del documento Xml:xmlObj.childNodes.length Mentre per ricavare il numero dei figli di un sottofiglio occorre specificare tra parentesi il numero dell'elemento (naturalmente partendo da 0) xmlObj.childNodes(1).childNodes.length Per il quarto figlio che non possiede figli l'istruzione prevedibilmente restituisce 0: xmlObj.childNodes(3).childNodes.length ... e così via. Mentre per ricavare il numero dei figli del secondo figlio del terzo figlio principale (il numero dei figli del tag <commento>), occorre riprodurre la stessa gerarchia nell'istruzione: xmlObj.childNodes(2).childNodes(4).childNodes.length La proprietà hasChildNodes permette di rilevare se un elemento possiede figli: restituendo true per il secondo figlio (Bruce Stearling): xmlObj.childNodes(1).hasChildNodes) mentre false per il quarto figlio xmlObj.childNodes(3).hasChildNodes Per ricavare il nome del tag(<libro>) di un figlio si utilizza la proprietà tagName. Il nome del figlio 4(<commento>) del 2 figlio principale: xmlObj.childNodes(2).childNodes(4).tagName Il valore contenuto in un nodo e nei suoi attributiIndividuato un nodo con childNodes il metodo firstChild e la sua proprietà text permettono di ricavare appunto il valore contenuto.Per nome dell'autore autore del I nodo: xmlObj.childNodes(0).firstChild.text Mentre il cognome dell'autore del II Nodo xmlObj.childNodes(2).childNodes(1).firstChild.text Ogni elemento Xml ( <libro></libro> ) a secondo delle esigenze può contenere degli attributi (<libro prezzo="12">) e il metodo getAttribute() estrae il valore dell'attributo specificato: xmlObj.childNodes(0).getAttribute("prezzo") Scorrere e stampare i valoriA questo punto è possibile stampare il valore degli elementi di un documento Xml atrraverso un ciclo, modificando come segue la funzione di esempio loadXML()
function loadXML(xmlFile) {
if (window.ActiveXObject){ var xmlDoc = new ActiveXObject("Microsoft.FreeThreadedXMLDOM"); xmlDoc.async="false"; xmlDoc.load(xmlFile); xmlObj=xmlDoc.documentElement; for (i=0; i<xmlObj.childNodes.length;i++){ if (xmlObj.childNodes(i).hasChildNodes){ // Se ha figli document.write(xmlObj.childNodes(i).childNodes(0).text ) // Nome I autore document.write(xmlObj.childNodes(i).childNodes(1).text +" - ") // Cognome I autore }} }else{ alert("Spiacente per questo tutorial occorre Explorer"); return false; } } loadXML("libri.xml"); Lo script stampa a video: William Gibson - Bruce Sterling - Neal Stephenson - Da notare l'utilizzo del controllo chasChildNodes altrimenti l'ultimo figlio del documento Xml provocherebbe un errore("Necessario oggetto") non avendo i figli che il codice cercano di stampare. Utilizzando il metodo getElementsByTagName() è possibile scorrere il documento Xml e stampare con nodeValue i valori corrispondenti al tag specificato, sostituendo il ciclo appena inserito nella funzione di esempio loadXML() con il seguente blocco di codice.
elementi = xmlObj.getElementsByTagName("nome");
for (i = 0; i < elementi.length; i++) document.write(elementi[i].firstChild.nodeValue + "\r"); Lo script stampa a video: William Bruce Neal ![]() Warning: include(ads/text468x15.html): failed to open stream: No such file or directory in D:\inetpub\webs\fishscriptcom\documents\view_document.php on line 131 Warning: include(): Failed opening 'ads/text468x15.html' for inclusion (include_path='.;C:\php\pear') in D:\inetpub\webs\fishscriptcom\documents\view_document.php on line 131 Tutorial ![]() Script ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Cerca
Xml...
Info:
Le cinque entità predefinite in XML
Anger is creative, depression is useless.
Dyson, Freeman J. Anger is creative, depression is useless.
Dyson, Freeman J.
Xml...
Info:
Le cinque entità predefinite in XML
Xml...
Definizioni:
Well-formedness
Oracle...
Definizioni:
SCN
Shell scripting...
Script:
Executing arithmetic operation in shell program
fishScript.Com is accessible by Mobile access technology
as mobile phones, Palm and Pocket PC .
Nicoleta e Marco Magnani tutorial, examples, courses, esempi, corsi, esercizi, appunti vari Dottoressa Nicoleta Dragu Formatrice Docente Insegnante Mediatrice Culturale Dott. Marco Magnani Universita La Sapienza Roma Master Computer Science Hunter College New York , Data Base Administrator DBA oracle System architect |