C#循环遍历xml文件中的属性
我对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。以
<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")
};