【发布时间】:2020-09-11 12:09:18
【问题描述】:
我正在尝试从下面的 xml 文件中获取服务 ID 列表。
<Settings>
<SomeTag>Some inner text</SomeTag>
<Services ID="Downtown Location">
<Service ID="22923">Basic</Service>
<Service ID="22926">Basic + 2</Service>
<Service ID="22927">Basic + 3</Service>
<Service ID="22928">Basic + 4</Service>
<Service ID="22929">Basic + 5</Service>
</Services>
<MoreTags>
<ATag></ATag>
<ATag></ATag>
<ATag></ATag>
<ATag></ATag>
</MoreTags>
</Settings>
我尝试了几种我在网上找到的方法,但每种方法都有一些问题。这是我最后一次尝试。
List<string> ServiceList = new List<string>();
XmlDocument xdoc = new XmlDocument();
xdoc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\Settings.xml");
XmlNodeList nodes = xdoc.DocumentElement.SelectNodes("/Services/Service");
foreach (XmlNode node in nodes)
{
ServiceList.Add(node.Attributes["ID"].Value);
}
return ServiceList;
在这种情况下,节点没有项目。我已经尝试了 SelectNodes 的几种变体,但仍然没有项目。早些时候,我尝试过 XDocument 和 LINQ 查询。我更愿意这样做,但我还没有找到收集 ID 的示例。
【问题讨论】:
-
您共享的 C# 代码将始终返回一个空列表,因为您从未向
ServiceList添加任何内容。 -
谢谢卢克。我在此示例中更改了名称,并没有在循环中更改它。但是,节点仍然是空的。 ServiceList 不会包含任何内容,因为节点中没有任何内容。