Как получить имя атрибута и значение Elemnt с помощью XDocument
В настоящее время я работаю над приложением ASP.NET Web Forms и.NET 4.0. У меня нет предыдущего опыта работы с XML в.NET. Я создал этот очень простой XML-документ, из которого я хочу извлечь атрибуты с соответствующими данными:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<DataTable>
<Filter>true</Filter>
<DropDown>true</DropDown>
</DataTable>
</configuration>
И я пытаюсь этот код:
var path = HttpContext.Current.Server.MapPath("/XML/Settings.xml");
XDocument xdoc = XDocument.Load(path);
IEnumerable<XElement> xnodes = xdoc.Root.Elements("DataTable");
List<string> list = new List<string>();
foreach (XElement xnn in xnodes)
{
list.Add(xnn.Value);
}
что приводит к одному элементу в моем List
со значением truetrue
, Я знаю, что здесь я не пытаюсь получить как имя атрибута, так и содержимое внутри него, но в целом это то, что я хочу сделать, так как я могу это сделать?
3 ответа
Здесь нет атрибута. Я думаю, что вы хотите словарь, где ключи являются имена элементов, а значения являются значениями элементов
var dictionary = xdoc.Root.Elements("DataTable").Elements()
.ToDictionary(x => x.Name.LocalName, x => (string)x)
Вы можете получить все элементы в качестве словаря
var dictionary = xdoc.Descendants().
ToDictionary(x => x.Name.LocalName, x => x.Value)
Ты пытался использовать XmlConvert.ToBoolean()
функционировать?
Также я бы предпочел использовать синтаксис Linq при работе с файлами XML.