Newsgroup: it.comp.lang.javascript
Titolo: Inserimento nodo in un file XML con JScript.

Ciao a tuti,
potreste indicarmi,per favore, come fare per inserire un nodo in un file XML
con JScript? Sono graditi consigli e parti di codice ;-)
Grazie!
Luca.

usi il parser della Microsoft?
se si':
var doc= new ActiveXObject("Msxml2.DOMDocument");
doc.async = false;
doc.load(nomefile.xml);
var x=doc.createElement("NomeElemento");
t.appendChild(x);
t e' il padre sotto cui vuoi attaccare il nuovo elemento e te lo devi
recuperare
in base all' XML che hai, ad esempio con doc.getElementsByTagName("nome")....
fai alert(doc.xml) per vedere l'XML.
poi ti salvi il file con dentro il nuovo XML
se mandi l'XML,magari potrei essere piu' preciso.
ciao

-- 
Posted from  [62.101.65.6] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 usi il parser della Microsoft?
Curiosita`: JavaScript di IE non e` DOM compliant almeno a questo livello?
A risentirci
\  Davide G. Borin
\\ !!Scudo anti-spam attivo!! Togliere le x e "eliminami" dall'indirizzo
\\\_____________________________________________________________________

 ha scritto nel messaggio
news:824ee151721797cab6d...@mygate.mailgate.org...


secondo me c'e' una limitazione sulle impostazioni di sicurezza sul browser.
Non ho mai provato a salvare niente in locale. Prova a guardare le preferenze
di
explorer e togli quelle che possono limitare il tutto.
Al limite prova ad aprire il file che ti serve con :
y = new ActiveXObject("Scripting.FileSystemObject") 
e poi salva il nuovo XML in questo file.


 \\\_____________________________________________________________________


 scusami, ma non ho capito cosa significa quello che hai scritto.
Se un browser supporta il DOM del W3C in javaScript
(
http://www.w3.org/DOM/
), dovrebbe essere in grado di manipolare alberi
XML senza bisogno di software aggiuntivo, quale ritengo sia il parser XML
3.0 di Microsoft. Mozilla lo fa.


 


 metodi e le proprieta', altrimenti come faresti?
Ovviamente dipende dal contesto: un JS associato ad un XML puo` manipolare
il file stesso senza instanziare niente. Se vuoi creare un nuovo XML, ci
sono i metodi DOM appositi. Tutto questo per chiedere: c'e` proprio
bisogna di usare un componente ActiveX, rendendo lo script incompatibile
con tutto cio` che non e` IE+Windows?


 proprietaro e quindi non utilizzabile sul web pubblico.
Secondo me ti vengono installate e registrate al momento dell'installazione 
di explorer.
Poi dal sito Microsost ti scarichi le ultime versioni.


il parser XML 3.0 di Microsoft. Mozilla lo fa.
Scherziamo? IE incorpora nel DOM della pagina persino tag che fanno 
parte di altri DOM (esempio: tag VML). Basta creare il documento XML 
come isola dati e manipolarlo come oggetto del DOM

Non sono purtroppo ancora riuscito a trovare un buon metodo per scrivere un
nodo in un file XML,nessuno ha un'idea o meglio un pezzo di codice da
postarmi  ;-) ?
A presto!
Luca.

 postarmi  ;-) ?
   // carichi il documento nel parser
   var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.load("test.xml");
    var root = xmlDoc.documentElement;  // radice del documento
    var elemento = xmlDoc.createElement("nuovoElemento");  // crei un nodo
elemento
    var testo = xmlDoc.createTextNode("nuovoTesto"); //crei nodo testo
    figlio = root.childNodes(0); //ti riferisci al nodo figlio di root
    // figlio = root.firstChild;    root.childNodes(0)     sono la stessa
cosa
   alert(figlio.nodeName); // puoi vedere se sei nella posizione correta
   elemento.appendChild(testo);  // appendi (..ma si dice così???) il testo
all'elemento appena creato
   figlio.appendChild(elemento); // appendi l'elemento creato col testo al
figlio di root
   document.write(root.xml); // controlli il risultato ottenuto
spero sia tutto giusto e ti possa essere di aiuto
ciao
Ranieri

Ciao Ranieri,
grazie per la risposta e per il codice....esso funziona perfettamente ma il
mio problema è legato al salvataggio dei dati del file xml,dopo averli
modificati.Per esempio,aggiungo il nodo alla struttura xml di
partenza,mostro i dati a video eventualmente....poi come faccio a salvarli
nel file XML ? Ho provato con il metodo "xmlDoc.save" ma mi viene ritornato
un errore di "autorizzazione negata" inspiegabile giacchè il file xml è in
una directory con diritti di scrittura e non ci sono restrizioni sul file
stesso...hai una qualche idea?
A presto!
Luca.



 stesso...hai una qualche idea?
ho avuto lo stesso problema, che purtroppo però non ho ancora risolto, ho
postato la domanda su comp.text.xml ...ti scrivo qui sotto le risposte che
mi hanno dato ( è comunque un problema di sicurezza, non è permesso salvare
da browser):
----
You can't save files on the client from the browser.
It's a security problem obviously!
You have to use some server-side code like ASP.
Then you can save the file (you can run personal webserver on your PC).
----
IE won't let scripts access the local HD. (Security thing). I haven't
figured out a way to disable this setting....
You might want to try setting up PWS and using ASP to fool around with XML.
It will let you save it, and the code you use will be practically identical.
-----
The way to disable it is to rename your .HTM file to ".HTA".  This turns it
into an unrestricted "application".  Launching a .HTA page is like launching
a .EXE.
----
qui invece una risposta da free.it.lang.xml riguardo allo soluzione qui
sopra.. dei file .HTA:
...
Questo è quanto dice MSDN:
HTML Applications Overview
----------------------------------------------------------------------------
----
The power to build HTML Applications (HTA) brings Microsoft® Internet
Explorer 5 to the fore as a viable Microsoft® Windows® development platform.
HTAs are full-fledged applications. These applications are trusted and
display only the menus, icons, toolbars, and title information that the Web
developer creates. In short, HTAs pack all the power of Internet
Explorer-its object model, performance, rendering power, protocol support,
and channel-download technology-without enforcing the strict security model
and user interface of the browser.
  a.. Why Use HTAs
  b.. Creating an HTA
  c.. HTA-Specific Functionality
  d.. The Power of Trust: HTAs and Security
  e.. Compatibility
  f.. HTA Deployment
  g.. Conclusion
  h.. Related Topics
Why Use HTAs
Historically, programming languages like C++ and Microsoft® Visual Basic®
have provided the object models and access to system resources that
developers demand. With HTA it is now time to add Dynamic HTML (DHTML) with
script to that list. HTAs not only support everything a Web page does-namely
HTML, CSS, scripting languages, and behaviors-but also HTA-specific
functionality. This added functionality provides control over user interface
design and access to the client system. Moreover, run as trusted
applications, HTAs are not subject to the same security constraints as Web
pages. As with any executable file, the user is asked once, before the HTA
is downloaded, whether to save or run the application; if saved to the
client machine, it simply runs on demand thereafter. The end result is that
HTAs runs like any executable (.exe) written in C++ or Visual Basic.
HTAs are suited to many uses, whether you are prototyping, making wizards,
or building full-scale applications. Whatever DHTML and script deliver
now-forms, multimedia, Web applications, HTML editors, and browsers-so can
HTAs...and then some. Best of all, HTAs make some tasks easier. The
simplicity of generating prototypes using HTAs makes it possible for program
managers and designers to script dialog boxes and alerts while the C++ or
Visual Basic developers program the underlying functionality.
Però all'accesso dell'hta dal browser apre il popup come per un file in
download.
---------------------
se vai su microsoft.public.xml c'è un post con soggetto: "saving an xml file
using dom".. di oggi
magari qualcuno darà un risposta, ma la vedo grigia, a meno di usare Java o
Delphi...
ciao
Ranieri

 stesso...hai una qualche idea?
dimenticavo...magari questi link ti possono essere di aiuto:
http://www.devguru.com/Technologies/xmldom/quickref/document_save.html
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/ht
m/xmmthsave.asp

 ha scritto nel messaggio
news:H1Xy7.54$1C1...@news.it.colt.net...
