Атрибуты в xml - C#
Формулировка задачи:
Есть код:
Этот код должен в файл xml добавить матрицу пробелов с размером l,t.
Назание каждого атрибута должно быть примерно таково : tileТекущийi:Текущийj
Но вместо этого когда я пытаюсь создать матрицу размером 3 на 3, в файле появляються 3 атрибута с названиями 0, 1 и 2!
В чем проблема?
(И да, мне именно так нужно сохранять матрицу)
for (int i = 0; i < l; i++) // Иду по x-у, l = Длина матрицы { for (int j = 0; j < t; j++) // Иду по y-ку, t = Высота матрицы { x_attribute = x_document.CreateAttribute( "tile" + Convert.ToString(i) + ":" + Convert.ToString(j) ); //Для каждой ячейки массива создаю атрибут в файле xml, с названием в формате (tile текущий i : текущий j) x_attribute.Value = " "; // Задаю атрибуту стандартное значение x_node.Attributes.Append(x_attribute); // Добавляю атрибут } }
Решение задачи: «Атрибуты в xml»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; namespace xml { public static class ExMethods { public static IEnumerable<Tuple<int, int>> Create2DIterator(this int[,] arr2D) { for (int i = 0, j; i < arr2D.GetLength(0); ++i) for (j = 0; j < arr2D.GetLength(1); ++j) yield return Tuple.Create(i, j); } } class Program { static void Main(string[] args) { var arr = new[,] { {1,2,3}, {4,5,6}, {7,8,9} }; var xDocument = new XDocument( new XDeclaration(null, "utf-8", null), new XElement("root", new XElement("Матрица", arr.Create2DIterator().Select(n => new XAttribute("tile" + n.Item1 + "_" + n.Item2, arr[n.Item1, n.Item2]))))); Console.WriteLine(xDocument); xDocument.Save("test.xml"); Console.ReadKey(true); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д