4 messaggi dal 14 novembre 2009
Ciao a tutti, avrei bisogno di un piccolo aiuto riguardante l'estrazione di dati da un file XML con ASP.
In particolare devo, per il momento, visualizzare a video un elenco di prodotti con prezzo descrizione ecc, ed una volta capito come si fa, memorizzarli su un db di access (ma quest'ultima cosa la so già fare).
Prima di chiedere al forum ho naturalmente scaricato degli esempi sul web ed ho apportato le modifiche che credevo essere giuste per adattare il tutto alle mie esigenze, ma essendo completamente a digiuno di come si trattano i files XML ho copiato "a pappagallo" delle parti e ho sicuramente sbagliato qualcosa, infatti nell'esempio scaricato dal web mi appare a video una lista con il contenuto dei record del file XML, nel mio si apre solo il file ma senza alcun record visualizzato.
Allego i codici dei files funzionanti e di quelli adattati da me:
--------------------------------------------------------------------
file di lettura chiamato le.asp (funzionante)
<html>
<head>
<title>Leggere un file XML con ASP</title>
</head>
<body>

<%
Dim objXmlDom
Set objXmlDom = Server.CreateObject("Microsoft.XMLDOM")
    objXmlDom.async = False
    objXmlDom.load Server.MapPath("database.xml")

Dim nome, cognome
Set nome = objXmlDom.getElementsByTagName("record/nome")
Set cognome = objXmlDom.getElementsByTagName("record/cognome")

Dim i
i = 0
For i = 0 To nome.length - 1
    Response.Write nome(i).Text & " " & cognome(i).Text & "<br>"
Next

Set nome = Nothing
Set cognome = Nothing
Set objXmlDom = Nothing
%> 

-----------------------------------------------------------------------
file contenente i dati chiamato database.xml

  <?xml version="1.0" ?> 
- <database>
- <record>
  <nome>Giuseppe</nome> 
  <cognome>Verdi</cognome> 
  </record>
- <record>
  <nome>Antonio</nome> 
  <cognome>Bianchi</cognome> 
  </record>
- <record>
  <nome>Mario</nome> 
  <cognome>Rossi</cognome> 
  </record>
  </database>


-----------------------------------------------------------------------
file di lettura modificato da me chiamato leggi.asp (non funzionante)

<html>
<head>
<title>PROVA FILE XML</title>
</head>
<body>

<%
Dim objXmlDom
Set objXmlDom = Server.CreateObject("Microsoft.XMLDOM")
    objXmlDom.async = False
    objXmlDom.load Server.MapPath("Prodotti.xml")

Dim InternalId, Code, Description
Set InternalId = objXmlDom.getElementsByTagName("EasyfattProducts/Products/Product/InternalId")
Set Code = objXmlDom.getElementsByTagName("EasyfattProducts/Products/Product/Code")
Set Description = objXmlDom.getElementsByTagName("EasyfattProducts/Products/Product/Description")

Dim i
i = 0
For i = 0 To InternalId.length - 1
    Response.Write InternalId(i).Text & " " & Code(i).Text & " "& Description(i).Text & "<br>"
Next

Set InternalId = Nothing


-----------------------------------------------------------------------
mio file contenente i record chiamato prodotti.xml

  <?xml version="1.0" encoding="UTF-8" ?> 
- <EasyfattProducts AppVersion="DaneaEasyfatt.2006.17.00">
- <Products>
- <Product>
  <InternalID>63</InternalID> 
  <Code>BAT04</Code> 
  <Description>BATTERIA COMPATIBILE LOGISTY BATLI04 3,6V 2Ah</Description> 
  <Category>BATTERIE</Category> 
  <Vat>20</Vat> 
  <Um>nr</Um> 
  <NetPrice3>7.5</NetPrice3> 
  <GrossPrice3>9</GrossPrice3> 
  <SizeUm>cm</SizeUm> 
  <WeightUm>kg</WeightUm> 
  <ManageWarehouse>true</ManageWarehouse> 
  <MinStock>5</MinStock> 
  <AvailableQty>-25</AvailableQty> 
  </Product>
- <Product>
  <InternalID>62</InternalID> 
  <Code>BAT06</Code> 
  <Description>BATTERIA COMPATIBILE LOGISTY BATLI06 7,2V 5Ah</Description> 
  <Category>BATTERIE</Category> 
  <Vat>20</Vat> 
  <Um>nr</Um> 
  <NetPrice3>23.333</NetPrice3> 
  <GrossPrice3>28</GrossPrice3> 
  <SizeUm>cm</SizeUm> 
  <WeightUm>kg</WeightUm> 
  <ManageWarehouse>true</ManageWarehouse> 
  <MinStock>5</MinStock> 
  <AvailableQty>-1</AvailableQty> 
  </Product>

eccetera eccetera ..............
</Products>
  </EasyfattProducts>

Ringrazio anticipatamente chi mi vorrà aiutare.
Edoardo
il problema sono i path xml che usi. hai provato semplicemente con "Product/InternalId"?

Daniele Bochicchio | ASPItalia.com
I libri su HTML5, WP7, ASP.NET, VB, C#, Entity Framework
Senior Software Architect@5DLabs.it
Microsoft Regional Director for Italy
4 messaggi dal 14 novembre 2009
Avevi ragione, il problema è proprio quello.
Adesso funziona.
Grazie e ciao.

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.