Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: xml dove sbaglio?

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573

    xml dove sbaglio?

    Ciao a tutti... sto tentando di leggere un file xml da una pagina aspx.
    Non mi da errori ma non vedo nulla.
    Questo è il codice:
    Sub BindData()

    Dim strURL as String = Server.MapPath("News.xml")
    Dim xNews As New FileStream(strURL, FileMode.Open)
    Dim xml As New DataSet
    xml.ReadXml(xNews)
    News.DataSource = new DataView(xml.Tables("xNews"))
    News.DataBind()
    xNews.close()

    End Sub

    .....

    <asp:Repeater id="News" runat="server">
    <ItemTemplate>
    <%#Container.DAtaItem("IdNews")%>
    </ItemTemplate>
    </asp:Repeater>
    Dove faccio confusione?

  2. #2
    puoi anche evitare di creare uno stream ed utilizzare la funzione ReadXml del dataset passandogli direttamente il nome del file xml
    codice:
    xml.ReadXml(Server.MapPath("News.xml"))
    per il resto... hai provato a mettere un breackpoint dopo il caricamento dei dati nel dataset e guardato se i record nella tabella sono stati caricati?
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573
    Ciao! Ancora tu che mi aiuti!!!

    Come faccio a verificare che i dati siano caricati nella tabella del dataset?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573
    tutto il codice:
    <%@ Page Language="VB" Debug="true" %>
    <%@ Register TagPrefix="MyAsp" TagName="Top" Src="Top.ascx" %>
    <%@ Register TagPrefix="MyAsp" TagName="Botton" Src="Botton.ascx" %>
    <%@ import Namespace="System.Xml" %>
    <%@ import Namespace="System.Data" %>
    <script runat="server">

    Sub Page_Load (obj as object, e as EventArgs)
    if Not Page.IsPostBack then BindData()
    End Sub
    '************************************************* ***************
    Sub BindData()

    Dim xNews as XmlTextReader
    xNews = new XmlTextReader(Server.MapPath("News.xml"))
    Dim xml As New DataSet
    xml.ReadXml(xNews)
    News.DataSource = new DataView(xml.Tables("xNews"))
    News.DataBind()
    xNews.close()

    End Sub
    mha...

    comnque ho fatto la seguente prova:
    ...
    xNews = new XmlTextReader(Server.MapPath("News.xml"))
    response.write(xNews.Name &"="& xNews.Value &"
    ")
    response.end
    e l'unica cosa che stampa è l'=!!! quindi sembra che non raccolga dati dal foglio xml... che altro posso fare?

    il foglio xml è così:
    - <xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
    - <s:Schema id="RowsetSchema">
    - <s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30">
    - <s:AttributeType name="IDnews" rs:number="1">
    <s:datatype dt:type="int" dt:maxLength="4" rsrecision="10" rs:fixedlength="true" rs:maybenull="false" />
    </s:AttributeType>
    - <s:AttributeType name="Data" rs:number="2" rs:nullable="true" rs:writeunknown="true">
    <s:datatype dt:type="dateTime" rs:dbtype="timestamp" dt:maxLength="16" rs:scale="0" rsrecision="16" rs:fixedlength="true" />
    </s:AttributeType>
    - <s:AttributeType name="Testo" rs:number="3" rs:nullable="true" rs:writeunknown="true">
    <s:datatype dt:type="string" dt:maxLength="150" />
    </s:AttributeType>
    - <s:AttributeType name="Articolo" rs:number="4" rs:nullable="true" rs:writeunknown="true">
    <s:datatype dt:type="string" dt:maxLength="1073741823" rs:long="true" />
    </s:AttributeType>
    - <s:AttributeType name="Link" rs:number="5" rs:nullable="true" rs:writeunknown="true">
    <s:datatype dt:type="string" dt:maxLength="50" />
    </s:AttributeType>
    <s:extends type="rs:rowbase" />
    </s:ElementType>
    </s:Schema>
    - <rs:data>
    <z:row IDnews="4" Data="2004-01-18T00:00:00" Testo="Pippo" Articolo="bla bla bla bla" Link="" />
    ........................
    </rs:data>
    </xml>

  5. #5
    Originariamente inviato da elisa_rm74
    Come faccio a verificare che i dati siano caricati nella tabella del dataset?
    Se stai utilizzando visual studio puoi usare gli strumenti per il debug che questo ambiente di sviluppo ti mette a disposizione.
    Se tieni il progetto in modalita' Debug (combobox in alto), puoi cliccare a sinistra di una riga es. della riga successiva al readxml in modo che appaia un pallino e l'intera riga in rosso.
    A questo punto se avvii il progetto, l'esecuzione si dovrebbe stoppare nel punto in rosso. In basso, puoi vedere i vari oggetti finora istanziati dalla tua applicazione, espandendoli puoi vederne le proprieta' e ad ese per il dataset puoi vedere se ha una o piu tables ecc. Tutto cio' in sintesi.
    Il debug e' sicuramente un argomento da approfondire perche' ti permette di scoprire molto velocemente i possibili errori nel codice.
    Saluti a tutti
    Riccardo

  6. #6
    Originariamente inviato da elisa_rm74
    tutto il codice:
    Mi sembra che il tuo documento xml contenga anche il suo schema. Per leggere unicamente i dati xml usi ReadXml. Per leggere lo schema di un file xml devi usare ReadXmlSchema (un po' come FillSchema del dataadapter quando prima di riempire i dati in una tabella ci copi i vari tipi di campo dal database).
    Forse in questo caso puoi ricorrere ad un XmlDataDocument invece che al dataset (anche se in sostanza sono quasi la stessa cosa pero' il primo ti offre degli strumenti specifici per manipolare dati xml).
    Saluti a tutti
    Riccardo

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573
    nn mi trova errori non si vede il file e basta....

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573
    ma il fatto che non si vede nulla, non può dipendere dal tipo di file xml che mi viene scaricato nella cartella dell'applicazione da un programma scritto in vb? non ci sono errori nel codice e ovunque leggo è così che si fa...

  9. #9
    Originariamente inviato da elisa_rm74
    non ci sono errori nel codice e ovunque leggo è così che si fa...
    L'errore nel codice non sempre e' evidente. Fossi nei tuoi panni, andrei per esclusione e quindi la prima domanda che mi farei e': nella datatable del dataset ci sono dei record caricati oppure no? in questo modo puoi spostare l'attenzione sul codice successivo al caricamento o al contrario modificare quello appunto responsabile del caricamento dei dati.
    Saluti a tutti
    Riccardo

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573
    Dunque in questo modo:
    Sub Page_Load (obj as object, e as EventArgs)
    if Not Page.IsPostBack then BindData()
    End Sub

    Sub BindData()
    Dim dsXml As New DataSet()
    dsXml.ReadXml(Server.MapPath("news.xml"))
    News.DataSource = dsXml.Tables(0).DefaultView
    News.DataBind()
    End Sub
    ..........
    <aspataGrid id="News" runat="server"></aspataGrid>
    vedo una scritta così:
    data_id
    0

    data_id non è nemmeno un elemento del foglio (che ho postato prima)!

    ma non può dipendere dal foglio xml? è un foglio che mi viene passato da un programma scritto in vb....

    con un file xml di prova invece,
    <?xml version="1.0"?>
    <database>
    <utente>
    <nome>Luca</nome>
    <cognome>Ruggiero</cognome>
    </utente>
    </database>
    vedo correttamente.

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.