从 xml 文件中获取所有属性 c#

Get all attributes from the xml file c#

有没有办法从 xml 文件中获取所有属性? XML 文件:


<xml>
<level1>
<login Val=“true”><\login>
<inval>hello<\inval>
<\level1>
<level2 name=“Lara”>
<input place =“VKK”> teddy string <\input>
<\level2>

我正在寻找 xmlatributecollection 其中包含 真值 姓名劳拉 地点 VKK

也可以使用获取子元素(元素

但我期待 return: 姓名劳拉 地点 VKK

可能吗?请分享想法。谢谢

您可以使用 XDocument class 来达到这个目的

using System.Xml.Linq

XDocument class 包含有效 XML 文档所需的信息,其中包括 XML 声明、处理说明和注释。

如果您需要 XDocument 提供的特定功能,您只需创建 XDocument 对象 class。

var path="";//your xml file path
var xDocLoad = XDocument.Load(path);

var allAttributes = xDocLoad.Descendants()
                 .SelectMany(x => x.Attributes())
                 .ToDictionary(x => x.Name.LocalName, x => (string)x);

首先,我觉得你的 xml 不对,无论如何,让我们假设它是这样的:

string xml = @"
<xml>
<level1>
    <login Val=""true""></login>
    <inval>hello</inval>
</level1>
<level2 name=""Lara"">
    <input place=""VKK""> teddy string </input>
</level2>
</xml>";

您可以像这样获取具有相应名称和值的所有属性:

using System.Xml.Linq;

var doc = XDocument.Parse(xml);
var attributes = doc.Descendants()
                 .SelectMany(x => x.Attributes())
                 .ToDictionary(x => x.Name.LocalName, x => (string)x);

结果将是一个包含以下值的字典:

Key Value
Val true
name Lara
place VKK

DotNetFiddle 示例:https://dotnetfiddle.net/zBbM3Y