Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296

    lettura XML con DOM tag ripetuto

    Ho un doc XML con questa struttura.

    codice:
    <?xml version = '1.0' encoding = 'ISO-8859-1' standalone = 'yes'?>
      <RECORD NRICORRENZE='2'>
         <RICORRENZA N='1'>
            <INDIRIZZO1>VIA CUNEO</INDIRIZZO1>
            <PROV>BA</PROV>
            <INDIRIZZO2>VIA TORINO</INDIRIZZO2>
            <PROV>SA</PROV>
         </RICORRENZA>
         <RICORRENZA N='2'>
            <INDIRIZZO1>VIA SALUZZO</INDIRIZZO1>
            <PROV>MI</PROV>
            <INDIRIZZO2>VIA MANTA</INDIRIZZO2>
            <PROV>VI</PROV>
         </RICORRENZA>
      </RECORD>
    Come faccio con il DOM a raccogliere il valore contenuto nel secondo Tag <PROV> della prima RICORRENZA?


    ecco il codice gentilmente fornito da OcchioCrepato per la raccolta dei dati:

    codice:
    set oXmlDoc = Server.CreateObject("MSXML2.DOMDocument")
    'apri il file
    oXmlDoc.async = false
    oXmlDoc.loadXML (content)
    
    
    NRICORRENZE=oXmlDoc.selectSingleNode("//RECORD/@NRICORRENZE").text
    
    response.write("<HR>NRICORRENZE=" & NRICORRENZE & "<HR>
    ")
    
    for indice=1 to NRICORRENZE
    
    	INDIRIZZO1 = oXmlDoc.selectSingleNode("//RICORRENZA[@N='" & indice & "']/INDIRIZZO1").text
    	PROV1 = oXmlDoc.selectSingleNode("//RICORRENZA[@N='" & indice & "']/PROV").text
    	INDIRIZZO2 = oXmlDoc.selectSingleNode("//RICORRENZA[@N='" & indice & "']/INDIRIZZO2").text
    
             ??????????????????????
    
    next

  2. #2
    Non penso che si possa fare.

    Perchè non metti Prov2 ???


  3. #3
    Utente di HTML.it L'avatar di Toeke
    Registrato dal
    Aug 2002
    Messaggi
    348
    codice:
      Dim Xmldoc As New MSXML2.DOMDocument30
      Dim ListaNodi
      Dim Elemento 
      Dim y 
      If Xmldoc.loadXML(MyXml) Then
        Set ListaNodi = Xmldoc.getElementsByTagName("RICORRENZA")
        For y = 0 To ListaNodi.length - 1
          INDIRIZZO1 = ListaNodi.selectSingleNode("INDIRIZZO1").text
            [etc]
        [istruzioni]    
        Next
      End if
    In questa maniera assegni assegni ad ogni lista nodi il gruppo di figli del padre RICORRENZA e quindi riesci a ciclare su tutti i nodi RICORRENZA che trovi nel tuo RECORD


    P.s. In VB viene gestito in questa maniera.
    Ho adattato il codice per Asp , ma nn essendo una cima in tale linguaggio potrebbero esservi errori.





    Toek

  4. #4
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    Originariamente inviato da OcchioCrepato
    Non penso che si possa fare.

    Perchè non metti Prov2 ???

    il file XML mi viene già fornito così, e non posso chiedere di effettuare alcuna modifica....purtroppo

    Grazie comunque...

  5. #5
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    Originariamente inviato da Toeke
    codice:
      Dim Xmldoc As New MSXML2.DOMDocument30
      Dim ListaNodi
      Dim Elemento 
      Dim y 
      If Xmldoc.loadXML(MyXml) Then
        Set ListaNodi = Xmldoc.getElementsByTagName("RICORRENZA")
        For y = 0 To ListaNodi.length - 1
          INDIRIZZO1 = ListaNodi.selectSingleNode("INDIRIZZO1").text
            [etc]
        [istruzioni]    
        Next
      End if
    In questa maniera assegni assegni ad ogni lista nodi il gruppo di figli del padre RICORRENZA e quindi riesci a ciclare su tutti i nodi RICORRENZA che trovi nel tuo RECORD


    P.s. In VB viene gestito in questa maniera.
    Ho adattato il codice per Asp , ma nn essendo una cima in tale linguaggio potrebbero esservi errori.





    Toek
    Grazie. Oggi pomeriggio provo e ti faccio sapere...


  6. #6
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    Originariamente inviato da Toeke

    In questa maniera assegni assegni ad ogni lista nodi il gruppo di figli del padre RICORRENZA e quindi riesci a ciclare su tutti i nodi RICORRENZA che trovi nel tuo RECORD


    P.s. In VB viene gestito in questa maniera.
    Ho adattato il codice per Asp , ma nn essendo una cima in tale linguaggio potrebbero esservi errori.





    Toek
    Non capisco però come posso fare a distinguere due TAG presenti con lo stesso nome?:master:

    Non è possibile chiedere il 3° tag della RICORRENZA 1 poi il 4°della ricorrenza 1 ecc. senza usare i nomi dei TAG?

    Il problema sta nel fatto che all'interno della stessa ricorrenza
    ci sono tre TAG con lo stesso nome e se io scrivio:

    codice:
    PROV1 = oXmlDoc.selectSingleNode("//RICORRENZA[@N='" & indice & "']/PROV").text
    PROV2 = oXmlDoc.selectSingleNode("//RICORRENZA[@N='" & indice & "']/PROV").text
    PROV3 = oXmlDoc.selectSingleNode("//RICORRENZA[@N='" & indice & "']/PROV").text
    mi risultano 3 variabili (PROV1, PROV2, PROV3)uguali al valore contenuto nel primo TAG PROV incontrato all'interno della ricorrenza...

  7. #7
    prova questo
    ti stampa i nomi dei campi e i suoi valori senza che passare il nome dei campi
    codice:
    NRICORRENZE=oXmlDoc.selectSingleNode("//RECORD/@NRICORRENZE").text
    
    response.write("<HR>NRICORRENZE=" & NRICORRENZE & "<HR>
    ")
    
    for indice=1 to NRICORRENZE
    
     set nodo=oXmlDoc.selectNodes ("//RICORRENZA[@N='" & indice & "']").item (0)
    	
     nFigli=nodo.childNodes.length
    	
     for indiceFigli=0 to nFigli-1
      nodeName=nodo.childNodes(indiceFigli).nodeName
      valore=nodo.childNodes(indiceFigli).text
      response.write(nodeName & "=" & valore & "
    ")		
     next 
     response.write("
    
    ")		
    next

  8. #8
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    Originariamente inviato da OcchioCrepato
    prova questo
    ti stampa i nomi dei campi e i suoi valori senza che passare il nome dei campi
    :mavieni: :mavieni: :mavieni:

    Sei TRRRRRRRRRRRROPO un grande!!!!!!!

    Funziona!!!!!!

    :mavieni: :mavieni: :mavieni:

  9. #9
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    Ora mi metto sotto per capire bene il funzionamento....

  10. #10
    Originariamente inviato da barney09
    :mavieni: :mavieni: :mavieni:

    Sei TRRRRRRRRRRRROPO un grande!!!!!!!

    Funziona!!!!!!

    :mavieni: :mavieni: :mavieni:
    :metallica

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.