'fichier suggest.xml '------------------------------- <Messages> <Message> <Nom>Philippe</Nom> <EMail>truc@yahoo.fr</EMail> <Contenu>Héhé =)</Contenu> <DateMessage>17/09/2002 15:22:03</DateMessage> </Message> </Messages> 'fichier suggest.aspx '----------------------------- <%@ Page Language="vb" Debug="true" %> <%@Import NameSpace="System.XML"%> <script runat=server> Class Message Public Nom as String Public EMail as String Public Contenu as String Public DateMessage as Date End Class Sub Page_Load(sender as Object, e as EventArgs) if Not Page.IsPostBack Then guestbook.DataSource = GetDataSource guestbook.DataBind End If End Sub Sub btn_Click(sender as Object, e as EventArgs) Dim doc as New XMLDocument doc.Load(Server.MapPath("suggest.XML")) Dim mElement as XMLElement mElement = doc.CreateElement("Message") Dim mSubElement as XMLElement mSubElement = doc.CreateElement("Nom") mSubElement.InnerText = txtNom.Text mElement.AppendChild(mSubElement) mSubElement = doc.CreateElement("EMail") mSubElement.InnerText = txtEMail.Text mElement.AppendChild(mSubElement) mSubElement = doc.CreateElement("Contenu") mSubElement.InnerText = txtComm.Text mElement.AppendChild(mSubElement) mSubElement = doc.CreateElement("DateMessage") mSubElement.InnerText = DateTime.Now.ToString mElement.AppendChild(mSubElement) doc.DocumentElement.AppendChild(mElement) doc.Save(Server.MapPath("suggest.XML")) guestbook.DataSource = GetDataSource guestbook.DataBind txtNom.Text = "" txtEmail.Text = "" txtComm.Text = "" End Sub Function GetDataSource() as ArrayList Dim mArray as New ArrayList Dim doc as New XMLDocument doc.Load(Server.MapPath("suggest.XML")) Dim mNodeChild as XMLNode Dim mNodeList as XMLNodeList mNodeList = doc.GetElementsByTagName("Message") For each mNodeChild in mNodeList Dim mMessage as New Message mMessage.Nom = mNodeChild.ChildNodes(0).InnerText mMessage.EMail = mNodeChild.ChildNodes(1).InnerText mMessage.Contenu = mNodeChild.ChildNodes(2).InnerText mMessage.DateMessage = CDate(mNodeChild.ChildNodes(3).InnerText) mArray.Add(mMessage) Next GetDataSource = mArray End Function </script> <html><body> <form runat=server> <table width="500" border="0" cellspacing="5"> <tr valign="top"> <td>Nom</td> <td> <asp:TextBox id="txtNom" runat=Server/> </td> </tr> <tr valign="top"> <td>EMail</td> <td> <asp:TextBox id="txtEMail" runat=Server/> </td> </tr> <tr valign="top"> <td>Commentaire</td> <td> <asp:TextBox id="txtComm" TextMode=Multiline Width=250 Rows=5 runat=Server/> </td> </tr> <tr><td colspan=2 align=right> <asp:Button id=btn OnClick=btn_Click Text=Enregistrer runat=Server/> </td> </tr> </table> <asp:DataList id=guestbook runat=Server Border="1"> <HeaderStyle font-bold=True forecolor="White" backcolor="Black"/> <HeaderTemplate> Vos suggestions </HeaderTemplate> <ItemTemplate> Message du <%# Container.DataItem.DateMessage.ToString%><br/> De <a href=mailto:<%# Container.DataItem.EMail%>><%# Container.DataItem.Nom%></a> <p><%# Container.DataItem.Contenu%></p> </ItemTemplate> <AlternatingItemStyle BackColor="Silver"/> </asp:DataList> </form> </body></html>
Pas mal le systeme de sauvegarde en XML de plus c'est vraiment très rapide. reste à voir quand le fichier est conséquent.F___
C'est sûr qu'avec un fichier volumineux il faut plutot envisager une liaison avec une base =)
Invalid byte was found at byte index 101. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentException: Invalid byte was found at byte index 101.Source Error: Line 55: Dim mArray As New ArrayListLine 56: Dim doc As New XMLDocumentLine 57: doc.Load(Server.MapPath("suggest.XML"))Line 58: Line 59: Dim mNodeChild As XMLNode Source File: d:inetpubwwwrootlivre d'orsuggest.aspx Line: 57 Stack Trace: [ArgumentException: Invalid byte was found at byte index 101.] System.Xml.XmlScanner.GetChars(Byte[] srcBuffer, Int32& srcOffset, Int32 srcLen, Char[] destBuffer, Int32 destOffset, Boolean zeroedOut) +171 System.Xml.XmlScanner.Read() +129 System.Xml.XmlScanner.ScanContent() +412 System.Xml.XmlTextReader.ParseBeginTagExpandCharEntities() +266 System.Xml.XmlTextReader.Read() +216 System.Xml.XmlValidatingReader.ReadNoCollectTextToken() +38 System.Xml.XmlValidatingReader.Read() +14 System.Xml.XmlLoader.LoadChildren(XmlNode parent) +33 System.Xml.XmlLoader.LoadElementNode() +144 System.Xml.XmlLoader.LoadCurrentNode() +38 System.Xml.XmlLoader.LoadCurrentNode() +192 System.Xml.XmlLoader.LoadChildren(XmlNode parent) +47 System.Xml.XmlLoader.LoadElementNode() +144 System.Xml.XmlLoader.LoadCurrentNode() +38 System.Xml.XmlLoader.LoadCurrentNode() +192 System.Xml.XmlLoader.LoadChildren(XmlNode parent) +47 System.Xml.XmlLoader.LoadElementNode() +144 System.Xml.XmlLoader.LoadCurrentNode() +38 System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) +49 System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) +121 System.Xml.XmlDocument.Load(XmlReader reader) +72 System.Xml.XmlDocument.Load(String filename) +78 ASP.suggest_aspx.GetDataSource() in d:inetpubwwwrootlivre d'orsuggest.aspx:57 ASP.suggest_aspx.Page_Load(Object sender, EventArgs e) in d:inetpubwwwrootlivre d'orsuggest.aspx:14 System.Web.UI.Control.OnLoad(EventArgs e) +67 System.Web.UI.Control.LoadRecursive() +29 System.Web.UI.Page.ProcessRequestMain() +724
Pour la configuration de IIS, cherche sur le site ou sur google...
maous
Hello.Tout d'abord, merci pour ce code qui marche très bien.Mais j'ai un petit soucis (surement un truc débile...) : comment faire pour récupérer à l'affichage les retours à la ligne enregistrer dans le fichier XML ? En effet, les retours à la ligne "tapés" dans la textBox sont bien enregistrés dans le XML mais à l'affichage, ils sont ignorés.Merci.
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 871 935 membres 14 nouveaux aujourd'hui 16 147 membres club