Атрибуты в 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);
}
}
}