public static void Read_LandXML(string FileName) {
XmlReader XR = new XmlTextReader(FileName);
while (XR.Read()) {
if (XR.NodeType == XmlNodeType.Element) {
///////// ЧИТАЕМ ТОЧКИ ///////////////////////////////
if (XR.Name == "P") {
XR.MoveToAttribute("id"); // перемещаемся в атрибуты элемента
if (XR.Value != "") {
string pntID = XR.Value;
XR.Read();
XR.MoveToContent(); // перемещаемся в содержимое элемента
if (XR.Value != "") {
string[] data = XR.Value.Trim().Replace(".", ",").Split(' ');
if (data.Length == 3) {
double vx = 0, vy = 0, vz = 0;
bool IsDbl = double.TryParse(data[0], out vx);
IsDbl = IsDbl && double.TryParse(data[1], out vy);
IsDbl = IsDbl && double.TryParse(data[2], out vz);
if (IsDbl) {
// Если все три точки числа то можем
// формировать точку и добавлять ее в коллекцию точек
}
}
}
}
}
///////// ЧИТАЕМ ТРЕУГОЛЬНИКИ ///////////////////////////////
if (XR.Name == "F") {
XR.Read(); // читаем для того чтобы пропустить область атрибутов элемента
XR.MoveToContent(); // перемещаемся в содержимое элемента
if (XR.Value != "") {
string[] data = XR.Value.Trim().Split(' '); // перечень ID точек
if (data.Length == 3) {
// Тут добавляем объект треугольника
// в коллекцию треугольников
}
}
}
} // enf if
} // end while
}