XML ist ein wichtiges System in Microsofts .NET. Alle wesentlichen Elemente von .NET wie ASP.NET, WebServices sowie ADO.NET benutzen die in .NET verankerten XML Klassen.
Die XML Basisfunktionalität finden Sie im System.Xml Namespace.
Desweiteren gibt es in dieser System.XML.dll noch zwei weitere Nampspaces für die XSLT bzw. XPath spezifischen Typen.
Die grundliegende Funktionen des System.Xml Namespaces ist in zwei abstrakte Klassen gespilttet: XMLReader und XMLWriter. Wir beschäftigen uns in diesem ersten Teil mit XMLWriter. Die abstrakte Klasse XMLWriter findet Verwendung in zwei Klassen XMLTextWriter und XMLNodeWriter. Die Klasse XMLTextWriter ist zuständig für Manipulationen an XML Daten in TextSreams. XMLNodeWriter beschäftigt sich mit der Daten Manipulation im Document Object Model (DOM).
Ausserdem gibt es noch die abstrakte Klasse XMLNavigator welche die Funktionalität die speziell zur Navigation in den DOM Bäumen benötigt wird.
XMLWriter
Die abstrakte Klasse XMLWriter besitzt verschiedenste Methoden die benögtigt werden um XML Dokumente und darin enthaltene Element, Attribute, Kommentare usw. zu erzeugen.
WriteStartDocument()
WriteEndDocument()
WriteComment()
WriteStartElement()
WriteEndElement()
WriteStartAttribute()
WriteEndAttribute()
Ausserdem sind Funtkionaltitäten enhalten die es ermöglichen Values für die XML Elemente und Attribute zu erzeugen:
WriteBase64()
WriteBinHex()
WriteBoolean()
WriteChar()
WriteDouble()
...
XmlTextWriter
XmlTextWriter ist die konkrete Ableitung der XmlWriter Basisklasse und gibt die erzeugten Text als Zeichenströme (TextWriter, Stream) aus. Die Arbeit mit XmlTextWriter, bzw. XmlWriter ist sehr einfach aber aufwendig, ähnlich SAX.
Sample mit XmlTextWriter und TextWriter:
string AppPath = AppDomain.CurrentDomain.BaseDirectory.Substring(7, AppDomain.CurrentDomain.BaseDirectory.Length -7);< /FONT > AppPath = AppPath.Substring(1, AppPath.Length -1); XmlTextWriter writeXML = new XmlTextWriter(AppPath + "Test.xml", null); writeXML.WriteStartDocument(); writeXML.WriteComment("dynamic created XML document"); writeXML.WriteStartElement("adresses"); writeXML.WriteStartElement("adress"); writeXML.WriteStartAttribute("id", null); writeXML.WriteString("1"); writeXML.WriteEndAttribute(); writeXML.WriteStartElement("LastName"); writeXML.WriteString("Ulm"); writeXML.WriteEndElement(); writeXML.WriteStartElement("PreName"); writeXML.WriteString("Tobias"); writeXML.WriteEndElement(); writeXML.WriteEndElement(); writeXML.WriteEndElement(); writeXML.WriteEndDocument(); writeXML.Close(); Response.Redirect("XMLReader.aspx?XMLDoc=Test.xml"); |