1. Wprowadzenie do C#
  2. Szybki start
  3. Pierwszy program
  4. Komentarze
  5. Typy danych
  6. Zmienne
  7. Pola
  8. Właściwości
  9. Stałe
  10. Metody
  11. Instrukcje warunkowe
  12. Pętle
  13. Tablice
  14. Kolekcje
  15. Klasy
  16. Dziedziczenie
  17. Polimorfizm
  18. Konwersja typów
  19. Właściwości klasy String
  20. Typy wyliczeniowe
  21. Interfejsy
  22. Klasy statyczne
  23. Klasy Abstrakcyjne
  24. Przestrzenie nazw
  25. Wyjątki
  26. Typy generyczne
  27. JSON
  28. XML
  29. Podsumowanie

XML

XML (eXtensible Markup Language) jest językiem znaczników, który służy do przechowywania i przekazywania danych w formie tekstowej. C# posiada bogate biblioteki do pracy z XML, takie jak System.Xml oraz Linq to Xml, co pozwala na łatwe parsowanie, tworzenie i edycję plików XML.

Poniżej znajduje się przykład użycia C# do tworzenia elementów i atrybutów w pliku XML:

								
using System;
using System.Xml;

class Program
{
	static void Main(string[] args)
	{

	XmlDocument xmlDoc = new XmlDocument();


	XmlElement root = xmlDoc.CreateElement("root"); // tworzymy element "root"

	xmlDoc.AppendChild(root); // dodajemy element "root" jako główny element dokumentu



	XmlElement osoba = xmlDoc.CreateElement("osoba"); // tworzymy element "osoba"

	XmlAttribute imie = xmlDoc.CreateAttribute("imie"); // tworzymy atrybut "imie"

	imie.Value = "Piotr"; // ustawiamy wartość atrybutu

	osoba.Attributes.Append(imie); // dodajemy atrybut do elementu "osoba"



	XmlAttribute nazwisko = xmlDoc.CreateAttribute("nazwisko"); // tworzymy atrybut "nazwisko"

	nazwisko.Value = "Kowalski"; // ustawiamy wartość atrybutu

	osoba.Attributes.Append(nazwisko); // dodajemy atrybut do elementu "osoba"



	XmlAttribute wiek = xmlDoc.CreateAttribute("wiek"); // tworzymy atrybut "wiek"

	wiek.Value = "24"; // ustawiamy wartość atrybutu

	osoba.Attributes.Append(wiek); // dodajemy atrybut do elementu "osoba"



	root.AppendChild(osoba); // dodajemy element "person" jako dziecko elementu "root"

	xmlDoc.Save("data.xml"); // zapisujemy dokument do pliku */
	}
}
								
						
Wyjaśnienie

W powyższym przykładzie tworzymy element "root" oraz element "osoba", a następnie tworzymy atrybuty "imie", "nazwisko" i "wiek" i ustawiamy ich wartości. Następnie dodajemy atrybuty do elementu "osoba" oraz element "osoba" jako dziecko elementu "root". Na końcu zapisujemy cały dokument do pliku "data.xml".

Poniżej znajduje się przykład użycia C# do odczytu danych z pliku XML:

								
using System;
using System.Xml;

class Program
{
    static void Main(string[] args)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load("data.xml"); // Ładujemy plik XML, który został utworzony w przykładzie wcześniej

        XmlNodeList elemList = xmlDoc.GetElementsByTagName("osoba"); // Pobieramy listę elementów "osoba"

        for (int i = 0; i < elemList.Count; i++)
        {
            Console.WriteLine("Imie: " + elemList[i].Attributes["imie"].Value); // Wyświetlamy wartość atrybutu "imie"

            Console.WriteLine("Nazwisko: " + elemList[i].Attributes["nazwisko"].Value); // Wyświetlamy wartość atrybutu "nazwisko"

            Console.WriteLine("Wiek: " + elemList[i].Attributes["wiek"].Value); // Wyświetlamy wartość atrybutu "wiek"
        }
    }
}
								
						
Wyjaśnienie

W powyższym przykładzie używamy klasy XmlDocument do załadowania pliku XML o nazwie "data.xml" , następnie pobieramy listę elementów "person" i iterujemy przez każdy z nich. Dla każdego elementu "person" wyświetlamy wartości atrybutów "firstname", "lastname" i "age" na konsoli.

Poniżej znajduje się przykład użycia C# do edycji pliku XML:

								
using System;
using System.Xml;

class Program
{
    static void Main(string[] args)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load("data.xml"); // Ładujemy plik XML

        XmlNodeList elemList = xmlDoc.GetElementsByTagName("osoba"); // Pobieramy listę elementów "osoba"

        for (int i = 0; i < elemList.Count; i++)
        {
            if (elemList[i].Attributes["imie"].Value == "Piotr")
            {
                elemList[i].Attributes["wiek"].Value = "37"; // Zmieniamy wartość atrybutu "wiek"
            }
        }

        xmlDoc.Save("data.xml"); // Zapisujemy dokument do pliku
    }
}
								
						
Wyjaśnienie

W powyższym przykładzie używamy klasy XmlDocument do załadowania pliku XML o nazwie "data.xml" , następnie pobieramy listę elementów "person" i iterujemy przez każdy z nich. Dla każdego elementu "person" wyświetlamy wartości atrybutów "firstname", "lastname" i "age" na konsoli.

Notatka

Należy pamiętać, że takie podejście nie jest najlepszym wyborem, jeśli chodzi o modyfikację dużych plików XML, ponieważ trzeba przeczytać cały plik do pamięci, zmodyfikować i zapisać z powrotem. Lepiej jest skorzystać z LINQ to XML, który pozwala na selekcję, modyfikację i zapis tylko części pliku.