PDA

View Full Version : [asp.net] trasformazioni Xml


tognesimo
10-04-2009, 10:21
Volevo sapere se esiste un modo di fare la trasformazione senza avere un documentsource .xml.
Mi spiego:
In rete ho trovato il seguente esempio funzionante:


<form id="modulo" runat="server">
<asp:xml
id="x"
runat="server"
DocumentSource="utenti.xml"
TransformSource="utenti.xsl" />
</form>

Vorrei ottenere la stessa cosa però dinamicamente senza avere a disposizione il file xml ma ricavandolo di volta in volta da un url.
E' possibile?

^TiGeRShArK^
10-04-2009, 15:42
Volevo sapere se esiste un modo di fare la trasformazione senza avere un documentsource .xml.
Mi spiego:
In rete ho trovato il seguente esempio funzionante:


<form id="modulo" runat="server">
<asp:xml
id="x"
runat="server"
DocumentSource="utenti.xml"
TransformSource="utenti.xsl" />
</form>

Vorrei ottenere la stessa cosa però dinamicamente senza avere a disposizione il file xml ma ricavandolo di volta in volta da un url.
E' possibile?

che intendi da un url?
intendi un'altra pagina aspx che ti genera al volo il file xml?
in questo caso immagino che basti settare il content-type a text/xml e scrivere nella response di GenerateXml.aspx l'output XML tramite Response.Write

..sempre se ho capito quello che ti serve.. :stordita:

tognesimo
10-04-2009, 16:31
che intendi da un url?
intendi un'altra pagina aspx che ti genera al volo il file xml?
in questo caso immagino che basti settare il content-type a text/xml e scrivere nella response di GenerateXml.aspx l'output XML tramite Response.Write

..sempre se ho capito quello che ti serve.. :stordita:

Ciao grazie per l'intervento.Ho scritto un pezzo di codice in vb:
Dim newUri As Object
newUri = "http://1.56.4.63/openwork/list.aspx?ListType=13&ListSubType=0&modelid=53&hideactions=all&pageid=1155018048"

Dim doc_x As Object
doc_x = Server.CreateObject("Microsoft.XMLDOM")
Dim xmlHttp As Object
xmlHttp = Server.CreateObject("Msxml2.XMLHTTP.4.0")
xmlHttp.open("POST", newUri, False)
xmlHttp.send()
Dim xmlout, res
xmlout = xmlHTTP.responseXML.xml
res = doc_x.loadXml(xmlout)
doc_x.save("c:\Pic.xml")

Alla fine quando faccio doc_x.save mi genera l'xml però è vuoto.
Quello che voglio fare è questo:
ho un link di una pagina aspx(newUri nel codice).
Da questo link voglio estrarre l'xml e salvarlo in una directory.Dopodichè applico la trasformazione in asp(avendo sia il file xml sia il file xsl)

^TiGeRShArK^
10-04-2009, 17:12
l'indirizzo http://1.56.4.63/openwork/list.aspx?ListType=13&ListSubType=0&modelid=53&hideactions=all&pageid=1155018048
ti restituisce già un file xml?
in caso positivo basta che fai così in C#:

new WebClient().DownloadFile("http://1.56.4.63/openwork/list.aspx?ListType=13&ListSubType=0&modelid=53&hideactions=all&pageid=1155018048", @"c:\Pic.xml");

La classe WebClient è nel namespace System.Net
In Vb dovrebbe essere qualcosa di simile, ma non me lo ricordo tanto bene da scrivere codice corretto al volo senza Visual Studio :p

tognesimo
16-04-2009, 09:30
l'indirizzo http://1.56.4.63/openwork/list.aspx?ListType=13&ListSubType=0&modelid=53&hideactions=all&pageid=1155018048
ti restituisce già un file xml?
in caso positivo basta che fai così in C#:

new WebClient().DownloadFile("http://1.56.4.63/openwork/list.aspx?ListType=13&ListSubType=0&modelid=53&hideactions=all&pageid=1155018048", @"c:\Pic.xml");

La classe WebClient è nel namespace System.Net
In Vb dovrebbe essere qualcosa di simile, ma non me lo ricordo tanto bene da scrivere codice corretto al volo senza Visual Studio :p

Purtroppo cosi non funge.C'è un modo di farlo in visual basic

tognesimo
16-04-2009, 10:03
Ragazzi è possibile farsi restituire un xml da una pagina aspx??

^TiGeRShArK^
16-04-2009, 13:45
Purtroppo cosi non funge.C'è un modo di farlo in visual basic

:mbe:
nello stesso modo usando la sintassi di VB al posto di quella del C#...

tognesimo
16-04-2009, 14:04
:mbe:
nello stesso modo usando la sintassi di VB al posto di quella del C#...

Ho provato utilizzando il C ma non funziona!

^TiGeRShArK^
16-04-2009, 14:13
Ho provato utilizzando il C ma non funziona!

ovvero?
che errore ti da?

tognesimo
16-04-2009, 15:30
Non ricordo mi pare "variabile with di blocco non impostata".
Adesso sto procedendo in questo modo:


'Imposto l'oggetto XMLHTTP e recupero il file XML
Dim xmlHTTP, ResponseXML
xmlHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
xmlHTTP.open("Get", "http://1.56.4.63/openwork/list.aspx?ListType=13&ListSubType=0&modelid=53&hideactions=all&pageid=1155018048", False)
xmlHTTP.send()
'ResponseXML = XmlHttp.ResponseText



'Imposto l'oggetto XMLDOM e carico il file XML come stringa

Dim doc_x
doc_x = Server.CreateObject("Microsoft.XMLDOM")
doc_x.async = False
doc_x.loadXML(XmlHTTP.responseText)

Però non riesco a visualizzare nulla a schermo.

tognesimo
16-04-2009, 16:45
Ho finito il codice:
Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)

'Imposto l'oggetto XMLHTTP e recupero il file XML
Dim xmlHTTP, ResponseXML
xmlHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
xmlHTTP.open("GET", "http://1.56.4.63/openwork/list.aspx?ListType=13&ListSubType=0&modelid=53&hideactions=all", False)
xmlHTTP.send()
ResponseXML = XmlHttp.ResponseText



'Imposto l'oggetto XMLDOM e carico il file XML come stringa

Dim doc_x, ErrorMessage
doc_x = Server.CreateObject("Microsoft.XMLDOM")
doc_x.async = False
doc_x.validateOnParse = False
doc_x.resolveExternals = False
If not doc_x.LoadXml(ResponseXML) then
ErrorMessage = "errore"
else
'parserizza
end if

'Recupero i nodi del file XML

Dim user
Dim role
Dim id
user = doc_x.getElementsByTagName("table/userprofile/user/name")
role = doc_x.getElementsByTagName("table/userprofile/user/role")
id = doc_x.getElementsByTagName("table/userprofile/user/userid")

'Carico xsl e processo xml
Dim xsl, xsldoc
xsl = Server.CreateObject("Msxml2.XSLTemplate.3.0")
xsldoc = Server.CreateObject("Msxml2.FreeThreadedDOMDocument.3.0")
if xsldoc.load(Server.MapPath("gestione_mandato.xsl")) then
xsl.stylesheet = xsldoc
End if
'Trasformo in Html
Dim xslproc
xslproc = xsl.CreateProcessor()
xslproc.input = doc_x
xslproc.Transform
Response.ContentType = "text/xhtml"
Response.Write (xslproc.output)






End Sub

L'errore si verifica quando faccio xslproc.input = doc_x
Dove sbaglio??

tognesimo
17-04-2009, 11:56
UP!!!

tognesimo
17-04-2009, 16:07
Si può fare o è impossibile estrarre l'xml da una pagina aspx??

tognesimo
20-04-2009, 00:27
Up!!!