gpt4 book ai didi

c# - 在 C# 中创建具有 XML 属性的数组

转载 作者:数据小太阳 更新时间:2023-10-29 02:06:59 25 4
gpt4 key购买 nike

我正在使用 C# 处理具有重复结构的 XML 文件。伪文档如下:

<Root>
<Element attribute=1> 123 </Element>
<Element attribute=2> 456 </Element>
<Element attribute=3> 789 </Element>
</Root>

我正在尝试同时处理所有这些数据。我想出了(经过大量实验和阅读)如何将每个数据中的所有数据写入(某种)数组以便以后轻松访问。目前,我只是将此数据打印到控制台以进行调试:

XmlNodeList values = xmlDoc.GetElementsByTagName("Element");

for (int i=0; i <= values.Count; i++)
{
Console.WriteLine(values[i].InnerText);
}

那部分效果很好。现在,我正在尝试以类似的方式访问 的属性,但没有成功。经过一番搜索,我想到了

values = xmlDoc.GetElementsByTagName("Element").GetAttribute("attribute");

但这没有用。如何将这些属性添加到数组?

最佳答案

首先,正如其他人所说,XML 是区分大小写的。

其次,您试图访问元素枚举的单个属性。

xmlDoc.GetElementsByTagName("Element").GetAttribute("Attribute");

Document.ManyElements.SingleAttribute // The cardinality doesn't make sense here.

应该是

foreach(var element in Document.ManyElements)
{
Console.WriteLine(element.SingleAttribute)
}

第三,如果您可以设法正确设置 XML 格式,我强烈建议您使用 Linq To XML 来处理这些内容。使用起来更干净。

var myXmlText = @"<Root><Element attribute='1'>123</Element></Root>";
var doc = XElement.Parse(myXmlText);

var values = doc.Elements("Element")
.Attributes("attribute")
.Select(x => x.Value);

foreach(var value in values)
{
Console.WriteLine(value);
}

关于c# - 在 C# 中创建具有 XML 属性的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7815338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com