c# - 使用 C# 按属性名称搜索 XML 值
问题描述
我有一个 XML 文件,例如:
<ListOfMegaCities>
<MegaCities city="Moscow" residents="11503501" foundation="1624"/>
<MegaCities residents="8336817" city="New York" foundation="1147"/>
<MegaCities foundation="1066" residents="8961989" city="London"/>
</ListOfMegaCities>
我想在每一行中搜索像“city”这样的属性名称并解析像“New York”这样的值。在 xml 文件中,值 + 属性的顺序应该无关紧要。
我知道它看起来很简单......但我不明白。
我尝试如下:
strCityValue = ChildNodes[iIndex].Attributes[1].Value;
但是对于这个解决方案,值的顺序必须在 xml 文件中固定......
解决方案
.GetAttribute(...)
是你的朋友; 例如:
var doc = new XmlDocument();
doc.LoadXml(@"<ListOfMegaCities>
<MegaCities city=""Moscow"" residents=""11503501"" foundation=""1624""/>
<MegaCities residents=""8336817"" city=""New York"" foundation=""1147""/>
<MegaCities foundation=""1066"" residents=""8961989"" city=""London""/>
</ListOfMegaCities>");
foreach (XmlElement city in doc.DocumentElement.SelectNodes("MegaCities"))
{
Console.WriteLine(city.GetAttribute("city"));
}
或XDocument
, .Attribute(...)
:
var doc = XDocument.Parse(@"<ListOfMegaCities>
<MegaCities city=""Moscow"" residents=""11503501"" foundation=""1624""/>
<MegaCities residents=""8336817"" city=""New York"" foundation=""1147""/>
<MegaCities foundation=""1066"" residents=""8961989"" city=""London""/>
</ListOfMegaCities>");
foreach (XElement city in doc.Root.Elements("MegaCities"))
{
Console.WriteLine((string)city.Attribute("city"));
}
推荐阅读
- python - Deleting an element from a list of tuples and then calculating a total price based on elements within each tuple
- python-3.x - 如何区分物体曲率的两种不同类型的异常?
- python - TypeError:“DictWrapper”对象不可下标
- angular - httpclient中类型化Get的优势
- linux - 音频驱动程序基地址、DMA 和 IRQ
- php - 如何在while循环中调用函数
- unit-testing - Angular:ng测试运行但不执行测试用例
- android - 用户未连接到互联网时如何显示自定义错误布局?
- android - Manifest 中定义的启动模式是覆盖通过意图标志调用的启动模式还是相反?
- angular - 订阅路由以获取可观察性并在一次订阅中对其进行处理