Я пытаюсь ознакомиться с разбором XML-документа с C#. Мой файл XML выглядит следующим образом:Исключение Null Reference при разборе этого XML (включая код C#)
<title>
<titledata titletype="standard">
<currentid>18097</currentid>
</titledata>
<resourcedata>
<resource id="36" resourcetype="image">
<name>nextBtn.gif</name>
<relativelink>images/nextBtn.gif</relativelink>
<resourceflags>0</resourceflags>
<lastupdated>1367612131</lastupdated>
</resource>
<resource id="37" resourcetype="image">
<name>nextOver.gif</name>
<relativelink>images/nextOver.gif</relativelink>
<resourceflags>0</resourceflags>
<lastupdated>1367612131</lastupdated>
</resource>
<resource id="38" resourcetype="image">
<name>nextDown.gif</name>
<relativelink>images/nextDown.gif</relativelink>
<resourceflags>0</resourceflags>
<lastupdated>1367612131</lastupdated>
</resource>
<resourcedata>
</title>
Мой код выглядит следующим образом:
private void button1_Click(object sender, EventArgs e)
{
var ofd = new OpenFileDialog { Filter = "XML|*.xml" };
if (ofd.ShowDialog() != DialogResult.OK) return;
var xdoc = XDocument.Load(ofd.FileName);
foreach (var element in xdoc.Descendants("resourcedata"))
{
var id = Convert.ToInt32(element.Attribute("id").Value);
var resourceType = element.Attribute("resourcetype").Value;
var name = element.Element("name").Value;
var relativeLink = element.Element("relativeLink").Value;
var resourceFlag = Convert.ToInt32(element.Element("resourcetype").Value);
var lastUpdated = Convert.ToInt32(element.Element("lastupdated").Value);
resourceFlag, lastUpdated);
textBox1.Text += "ID: " + id + "\r\n";
textBox1.Text += "Resource Type: " + resourceType + "\r\n";
textBox1.Text += "Name: " + name + "\r\n";
textBox1.Text += "Relative Link: " + relativeLink + "\r\n";
textBox1.Text += "Resource Flag: " + resourceFlag + "\r\n";
textBox1.Text += "Last Updated: " + lastUpdated + "\r\n";
}
}
Ошибка я получаю "Null Reference Exception" на следующей строке:
var id = Convert.ToInt32(element.Attribute("id").Value);
Это почти как я пытаюсь получить доступ к неправильному элементу в этой точке, потому что кажется, что атрибут id
не существует. Если это так, что мне нужно сделать, чтобы исправить мой код? Я просто хочу распечатать информацию для каждого ресурса в файле XML.
Ах, ха! Отсутствующий кусок. Вы его нашли! Спасибо! Как только таймер закончится, я отвечу. Я приветствую вашу помощь! – Kevin