Witaj :)
Pierwsza sprawa to wydaje mi się, że struktura Twojego pliku XML jest niewłaściwa... Przypisujesz niepotrzebnie wartości atrybutom. Zaproponowałbym taką strukturę pliku:
Kopiuj
<root>
<polyline id="FO">
<point id="0">
<x>1378.9</x>
<y>656.42</y>
</point>
<point id="1">
<x>1378.76</x>
<y>693.996</y>
</point>
<point id="2">
<x>1379.44</x>
<y>731.5649</y>
</point>
</polyline>
<polyline id="MO">
<point id="0">
<x>980.76</x>
<y>1018.3</y>
</point>
<point id="1">
<x>997.805</x>
<y>1030.9098</y>
</point>
<point id="2">
<x>1017.36</x>
<y>1039.366</y>
</point>
</polyline>
</root>
I mój sposób odczytu... może nie jest najpiękniejszy ale zazwyczaj tak odczytuje pliki XML:
Kopiuj
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == "polyline")
{
reader.MoveToFirstAttribute();
Console.WriteLine("Polyline id = " + reader.Value);
}
else if (reader.Name == "point")
{
reader.MoveToFirstAttribute();
Console.WriteLine("Point id = " + reader.Value);
reader.MoveToContent();
while (reader.Name != "x")
reader.Read();
Console.Write("Wartosc x = ");
while (reader.NodeType != XmlNodeType.Text)
reader.Read();
Console.Write(reader.Value);
Console.WriteLine();
while (reader.Name != "y")
reader.Read();
Console.Write("Wartosc y = ");
while (reader.NodeType != XmlNodeType.Text)
reader.Read();
Console.Write(reader.Value);
Console.WriteLine();
}
}
}
reader to oczywiście obiekt klasy XMLTextReader
Kopiuj
XmlTextReader reader = new XmlTextReader(Environment.CurrentDirectory + "\\plik.xml");
Mam nadzieję, że to Ci pomoże :):)