XmlReader, XmlWriter - praca ze stringiem

Krótko i treściwie, nie zawsze mamy potrzebę zapisania do pliku lub wczytania z pliku zawartości w formacie Xml. Przykład, ot choćby piszemy prosty czytnik RSS, czy rzeczywiście musimy pobierać plik na dysk? Pobieramy jakieś dane z serwera zewnętrznego w formacie Xml do natychmiastowego przetworzenia czy musimy je zapisywać w pliku Xml, by je przetworzyć ?

XmlReader oraz XmlWriter dostarczają nam gotowego rozwiązania do przetworzenia zawartości Xml, którą posiadamy w zmiennej o typie string lub chcemy by zmienna przechowywała nam ciąg znaków z ów zawartością. Przeciążony konstruktor umożliwia nam takie działanie.

XmlReader

Utworzenie instancji XmlReader na podstawie zmiennej typu string zawierającej tekst w formacie Xml:

string xmlData = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root><item name=\"salt\" weight=\"10\" /><item name=\"peper\" weight=\"15\" /></root>";

XmlReader herbs = XmlReader.Create(new StringReader(xmlData));

//.... dalej obrabiamy nasze dane

XmlWriter

Utworzenie obiektu XmlWriter i zapisanie zawartości do zmiennej typu string:

StringBuilder xmlData = new StringBuilder(); //utworzenie obiektu StringBuilder, tak abysmy mogli skorzystac z przeciazenia

XmlWriter writer = XmlWriter.Create(xmlData); //utworzenie obiektu XmlWriter

//w tym miejscu wypełniamy nasz xml trescia
writer.WriteStartDocument();
writer.WriteStartElement("root");
writer.WriteStartElement("item");
writer.WriteAttributeString("name", "salt");
writer.WriteAttributeString("unit", "kg");
writer.WriteEndElement();
writer.WriteStartElement("item");
writer.WriteAttributeString("name", "peper");
writer.WriteAttributeString("unit", "lbs");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();

//teraz wystraczy tylko skonwertowac xmlData na string
xmlString = xmlData.ToString();

No votes yet

Dodaj nową odpowiedź

Zawartość pola nie będzie udostępniana publicznie.
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.
  • Dozwolone znaczniki HTML: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Znaki końca linii i akapitu dodawane są automatycznie.
  • You can use the <go> tags just like the <a> for nicer urls.

Więcej informacji na temat formatowania