login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > .NET > C#.NET > XML Schrijven en Lezen

XML Schrijven en Lezen

Auteur: Abbas - 06 augustus 2007 - 20:39 - Gekeurd door: Stijn - Hits: 7568 - Aantal punten: 5.00 (1 stem)




Het onderstaande script bestaat uit 2 bestanden:
- Default.aspx (1)
- Default.aspx.cs (2)

(1)
Hierin staat het formulier, het grafische gedeelte...

(2)
Het belangrijkste stuk van het script natuurlijk. Hierin staat de code om na een klik
op een knop een XML-bestand aan te maken en om met een klik op een andere knop het aangemaakte XML-bestand uit te lezen. Het is een eenvoudig script, gewoonweg om aan te tonen hoe je eenvoudig kan werken met XML en .NET!

Bij bijna elke regel staat commentaar om alles te verduidelijken...

Code:
Default.aspx

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml" >
  6. <head runat="server">
  7. <title>.: XML schrijven en lezen :.</title>
  8. </head>
  9. <form id="form_een" runat="server">
  10. <div style="text-align:center">
  11. <asp:Button ID="knop_schrijven" runat="server" Text="Maak XML file!" OnClick="schrijfxml_Click" />
  12. <br /><br />
  13. <asp:Button ID="knop_lezen" runat="server" Text="Open XML file!" OnClick="leesxml_Click" />
  14. </div>
  15. </form>
  16. </body>
  17. </html>


Default.aspx.cs

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. //IO: In & Output (werken met bestanden)
  11. //Xml: om de xml-classes te kunnen gebruiken
  12. using System.IO;
  13. using System.Xml;
  14.  
  15. public partial class _Default : System.Web.UI.Page
  16. {
  17. //Declareren variabelen
  18. XmlTextWriter xmlSchrijven;
  19. XmlTextReader xmlLezen;
  20. string pad, element, res;
  21.  
  22. protected void Page_Load(object sender, EventArgs e)
  23. {
  24. //pad instellen + naam van document opgeven
  25. //zelf te wijzigen indien nodig/gewenst
  26. pad = "H:\\leden.xml";
  27. }
  28.  
  29. protected void schrijfxml_Click(object sender, EventArgs e)
  30. {
  31. //nieuwe instance van de XmlTextWriter maken, en instellen naar het opgegeven pad
  32. xmlSchrijven = new XmlTextWriter(pad, null);
  33. //zorgen dat als er nieuwe elementen bijkomen dat een nieuwe regel en tab worden gebruikt
  34. xmlSchrijven.Formatting = Formatting.Indented;
  35. //schrijf het eerste regeltje van een xml-document (<?xml version="1.0"?>)
  36. xmlSchrijven.WriteStartDocument();
  37.  
  38. //element 'leden' schrijven
  39. xmlSchrijven.WriteStartElement("leden");
  40.  
  41. //element 'lid' schrijven
  42. xmlSchrijven.WriteStartElement("lid");
  43. //element 'naam' en 'leeftijd' maken en waardes meegeven
  44. //deze waardes kunnen ook variabelen zijn
  45. xmlSchrijven.WriteElementString("naam", "titjes");
  46. xmlSchrijven.WriteElementString("leeftijd", "21");
  47. //element 'lid'afsluiten
  48. xmlSchrijven.WriteEndElement();
  49.  
  50. //nieuw element 'lid' aanmaken
  51. xmlSchrijven.WriteStartElement("lid");
  52. //zelfde als hierboven
  53. xmlSchrijven.WriteElementString("naam", "koen");
  54. xmlSchrijven.WriteElementString("leeftijd", "19");
  55. xmlSchrijven.WriteEndElement();
  56.  
  57. //de eerste begintag, in dit geval 'leden' sluiten
  58. xmlSchrijven.WriteFullEndElement();
  59. //de Writer sluiten
  60. xmlSchrijven.Close();
  61.  
  62. //controleren of het bestand wel degelijk bestaat en een gepaste melding meegeven
  63. if (File.Exists(pad))
  64. {
  65. Response.Write("<h4>XML aangemaakt!</h4>");
  66. }
  67. else
  68. {
  69. Response.Write("<h4>Fout bij aanmaken XML!</h4>");
  70. }
  71. }
  72.  
  73. protected void leesxml_Click(object sender, EventArgs e)
  74. {
  75. //controleren of het bestand bestaat
  76. if (!File.Exists(pad))
  77. {
  78. //indien niet: foutmelding geven
  79. Response.Write("<h4>XML bestaat niet, eerst aanmaken!</h4>");
  80. }
  81. else
  82. {
  83. //als het wel bestaat:
  84. //nieuwe instance van een XmlTextReader maken, met als pad waar het daarvoor is aangemaakt
  85. xmlLezen = new XmlTextReader(pad);
  86. //beginnen lezen
  87. xmlLezen.Read();
  88.  
  89. //zolang er gelezen wordt
  90. while (xmlLezen.Read())
  91. {
  92. //als de regel dat gelezen wordt van het type 'element' is: de naam opslaan in een variabele
  93. if (xmlLezen.NodeType == XmlNodeType.Element)
  94. {
  95. //naam oplsaan in de variabele
  96. element = xmlLezen.Name;
  97. }
  98. //anders, als het van het type text is:
  99. else if(xmlLezen.NodeType == XmlNodeType.Text)
  100. {
  101. //de waarde in een var steken met daarvoor de naam van het element
  102. res = element + ": &nbsp;&nbsp;&nbsp;" + xmlLezen.Value.ToString() + "<br />";
  103. //elke keer de regel weergeven
  104. Response.Write(res);
  105. }
  106. }
  107. //stoppen met lezen
  108. xmlLezen.Close();
  109. }
  110. }
  111. }
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Geen reacties (0)
© 2002-2022 Sitemasters.be - Regels - Laadtijd: 0.025s