Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#循环遍历xml文件中的属性_C#_Xml - Fatal编程技术网

C#循环遍历xml文件中的属性

C#循环遍历xml文件中的属性,c#,xml,C#,Xml,我对C#非常陌生,但我试图制作一个应用程序来解析一个简单的XML文件,如下图所示,并在多列列表视图中填充数据 <mods> <mod Name="mod1.zip" sha1="508ed8f5fcd7d323d9296acad76f1183b810f62a"/> <mod Name="mod2.zip" sha1="669d8d09d297a9724fe1d1d676ac5f5a8ff10277"/> </mods> 你可以使用所有的MOD。以

我对C#非常陌生,但我试图制作一个应用程序来解析一个简单的XML文件,如下图所示,并在多列列表视图中填充数据

<mods>
<mod Name="mod1.zip" sha1="508ed8f5fcd7d323d9296acad76f1183b810f62a"/>
<mod Name="mod2.zip" sha1="669d8d09d297a9724fe1d1d676ac5f5a8ff10277"/>
</mods>

你可以使用所有的MOD。以及使用

可以使用列出所有属性。
如果您必须处理SHA-1、SHA-2或SHA-256属性中的哈希being,则可以使用。以及使用

可以使用列出所有属性。
如果必须在SHA-1、SHA-2或SHA-256属性中处理哈希being,则需要查找
Mod
元素,但它们都是
Mod
元素。您还需要查找名为
Name
Hash
的元素,但它们实际上是名为
Name
sha1
的属性。(不清楚为什么要使用
Contains
而不仅仅是使用
root.substands(“mod”)
)您的XML元素没有名为Hash的属性,而是根据上面的代码片段,它们是sha1、sha2。这可能是它无法查找和填充哈希属性的原因。您正在查找
Mod
元素,但它们都是
Mod
元素。您还需要查找名为
Name
Hash
的元素,但它们实际上是名为
Name
sha1
的属性。(不清楚为什么要使用
Contains
而不仅仅是使用
root.substands(“mod”)
)您的XML元素没有名为Hash的属性,而是根据上面的代码片段,它们是sha1、sha2。这可能是它无法查找和填充哈希属性的原因。
modList.View = View.Details;
modList.Columns.Add("Name", 650);
modList.Columns.Add("Status", 111, HorizontalAlignment.Center);

XElement root = XElement.Load("https://website.com/modlist.xml");
var mods = from subject in root.Descendants()
            where subject.Name.LocalName.Contains("Mod")
            select new
            {
                Name = subject.Element("Name").Value,
                Hash = subject.Element("Hash").Value,
            };

foreach (var mod in mods)
{
    modList.Items.Add(new ListViewItem(new string[]
        {
            mod.Name,
            mod.Hash
        }));

}
var mods = from ele in xDoc.Descendants("mod")
                    select new
                    {
                        Name = (string)ele.Attribute("Name"),
                        Hash = (string)ele.Attribute("sha1")
                    };