35 messaggi dal 11 aprile 2002
Utilizzando l'oggetto msxml2.DOMDocument.3.0 per modificare i file xml ho un problema ovvero devo modificare un il contenuto di un nodo oppure, se non esiste, crearlo. Il problema che se provo a modificare un nodo che non esiste mi da errore. Esiste un metodo per sapere se un dato nodo esiste e poi ...
Come per il post nell'altro forum:

Basta fare una query xpath che punti a quel nodo e verificare se è stato trovato; se usi selectSingleNode devi verificare che il risultato non sia null, se usi selectNodes devi verificare che la length del risultato sia > 0 (in caso contrario il nodo non esiste)

Matteo Casati
GURU4.net
35 messaggi dal 11 aprile 2002
Molte grazie, adesso provo
35 messaggi dal 11 aprile 2002
Ho provato a fare una cosa del genere ma non mi sembra funzionare, come faccio a verificare che sia nullo e nel caso usi selectnode a verificare che sia > 0 ?

set pid = objXML.selectSingleNode ("ROOT/DATUM[@label='PATIEN']")

IF isnull(pid) THEN ' NON FUNZIONA!!!!!!!
error = true
ELSE
pid_value = pid.firstChild.nodevalue
END IF



Ho anche un'altra domanda:
Nel esempio scritto sopra seleziono il nodo passandogli @label='PATIEN' nel caso dovessi cercare un nodo il cui valore attributo contenga il singolo apice come posso fare?

Ciao e grazie
Amedeo
Per verificare se un nodo esiste con selectSingleNode:

Set n = xml.selectSingleNode("root/a")
If n Is Nothing  Then
  Response.Write "Non trovato!"
Else
  Response.Write n.text
End If


Con selectNodes:

Set nl = xml.selectNodes("root/a")
If nl.length = 0 Then
  Response.Write "Nessun nodo trovato"
Else
  Response.Write "Nodi trovati: " & nl.length
End If


Per cercare un apice singolo nelle query XPath devi usare il carettere di escaping "\". Ad esempio, dato l'xml:

<root>
 <a b="l'albero">sample</a>
 <a b="xyz">sample 2</a>
</root>


Il primo nodo è raggiungibile con la query:

...selectSingleNode("root/a[@b='l\'albero']")

Matteo Casati
GURU4.net
35 messaggi dal 11 aprile 2002
Perfetto, soprattutto il carattere di escape mi ha salvato la vita


Ancora molte grazie

Amedeo

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.