C# 如何使用XDocument获取属性名和元素值
我目前正在开发ASP.NET Web窗体应用程序和.NET 4.0。我以前没有在.NET中使用XML的经验。我创建了这个非常简单的XML文档,我想从中提取属性及其各自的数据:C# 如何使用XDocument获取属性名和元素值,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,我目前正在开发ASP.NET Web窗体应用程序和.NET 4.0。我以前没有在.NET中使用XML的经验。我创建了这个非常简单的XML文档,我想从中提取属性及其各自的数据: <?xml version="1.0" encoding="utf-8" ?> <configuration> <DataTable> <Filter>true</Filter> <DropDown>true</DropDow
<?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);
}
var path=HttpContext.Current.Server.MapPath(“/XML/Settings.XML”);
XDocument xdoc=XDocument.Load(路径);
IEnumerable xnodes=xdoc.Root.Elements(“数据表”);
列表=新列表();
foreach(xnodes中的XElement xnn)
{
列表.添加(xnn.值);
}
这将导致我的
列表中有一个元素的值为truetrue
。我知道这里我不想同时获取属性名和其中的内容,但一般来说这就是我想要做的,所以我如何才能实现它?您是否尝试过使用XmlConvert.ToBoolean()
函数
另外,在处理XML文件时,我更愿意使用Linq语法。这里没有属性。我认为您需要一个字典,其中键是元素名,值是元素值
您可以将所有元素作为字典获取
var dictionary = xdoc.Descendants().
ToDictionary(x => x.Name.LocalName, x => x.Value)
我还不熟悉LINQ2XML。现在我只想让它工作,然后我可能会尝试用LINQ实现它。你能解释一下在哪里使用这个XmlConvert
func吗?我想你可以这样做:list.Add(XmlConvert.ToBoolean(xnn.Value))代码>我没有亲自测试,但这可能是找到解决方案的第一步。嗯,事实上,我想要一个字典,它看起来像:key=Filter,value=true;key=下拉列表,value=true
。到目前为止,我得到的并尝试您的建议也是key=DataTable,value=truetrue
@Leron add.Elements()在.Elements之后(“DataTable”),就是这样。谢谢。
var dictionary = xdoc.Descendants().
ToDictionary(x => x.Name.LocalName, x => x.Value)