<?xml version="1.0" encoding="UTF-8"?>
<root>
<item>
<question>Which country's flag is this?</question>
<img src="North_Korea.jpg"></img>
<option value="Norway"></option>
<option value="Philippines"></option>
<option value="North Korea" isRight="true"></option>
<option value="South Korea"></option>
<option value="North_Korea.jpg"></option>
</item>
</root>
上面是xml文件。我想获取所有元素的属性值。但是在重复时无法获取元素的属性值。 我使用下面的代码
XDocument xdoc = XDocument.Load("Assets/xml_files/flags.xml");
foreach (var item in xdoc.Descendants("item").Elements())
{
switch (item.Name.LocalName)
{
case "img":
questions.ImageName = item.Attribute("src").Value;
break;
case "option":
questions.OptionA = item.Attribute("value").Value;
questions.OptionB = item.Attribute("value").Value;
questions.OptionC = item.Attribute("value").Value;
questions.OptionD = item.Attribute("value").Value;
break;
case "desc":
questions.Description = item.Value;
break;
}
}
使用上面的代码我得到输出
作为
optionA =挪威
optionB =挪威
OptionC中=挪威
optionD =挪威
相反,在xml文件中必须有不同的值。
请帮帮我。谢谢你的时间。
答案 0 :(得分:0)
将您的代码更改为:
var i = 0;
var lstOptions = new List<string>();
XDocument xdoc = XDocument.Load("Assets/xml_files/flags.xml");
foreach (var item in xdoc.Descendants("item").Elements())
{
switch (item.Name.LocalName)
{
case "img":
questions.ImageName = item.Attribute("src").Value;
break;
case "option":
lstOption.add(item.Attribute("value").Value);
break;
case "desc":
questions.Description = item.Value;
break;
}
}
questions.OptionA = lstOption[0];
questions.OptionB = lstOption[1];
questions.OptionC = lstOption[2];
questions.OptionD = lstOption[3];