У меня есть Data.xml:
<?xml version="1.0" encoding="utf-8" ?>
<data>
<album>
<slide title="Autum Leaves"
description="Leaves from the fall of 1986"
source="images/Autumn Leaves.jpg"
thumbnail="images/Autumn Leaves_thumb.jpg" />
<slide title="Creek"
description="Creek in Alaska"
source="images/Creek.jpg"
thumbnail="images/Creek_thumb.jpg" />
</album>
</data>
Я бы хотел иметь возможность редактировать атрибуты каждого узла Slide через GridView (к которому добавлен столбец «Выбрать».) И до сих пор у меня есть:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedIndex = GridView1.SelectedIndex;
LoadXmlData(selectedIndex);
}
private void LoadXmlData(int selectedIndex)
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(MapPath(@"..\photo_gallery\Data.xml"));
XmlNodeList nodelist = xmldoc.DocumentElement.ChildNodes;
XmlNode xmlnode = nodelist.Item(selectedIndex);
titleTextBox.Text = xmlnode.Attributes["title"].InnerText;
descriptionTextBox.Text = xmlnode.Attributes["description"].InnerText;
sourceTextBox.Text = xmlnode.Attributes["source"].InnerText;
thumbTextBox.Text = xmlnode.Attributes["thumbnail"].InnerText;
}
Код для LoadXmlData - всего лишь предположение с моей стороны - я новичок в работе с xml таким образом. Я бы хотел, чтобы пользователь спрятал строку в виде сетки, а затем заполнил набор текстовых полей каждым слайдом, который приписывается для обновления обратно в файл Data.xml.
Я получаю ошибку: ссылка на объект не установлена для экземпляра объекта "в строке: titleTextBox.Text = xmlnode.Attributes [" @ title "]. InnerText;
поэтому я не достигаю атрибута "title" узла слайда. Спасибо за любые ваши идеи.