我想读取一个config.xml并将每个项目放入一个组合框中,以便XML文件是数据源。这是我的代码,它只在我的组合框中输入一个条目。如何分开钥匙?这是我的过滤器:
C#
var xmlDocument = XDocument.Load(configfile);
var anredeItems = from key in xmlDocument.Descendants("Anrede")
select key.Value.Trim();
anredeNrComboBox.DataSource = anredeItems.ToList();
这是XML:
<?xml version="1.0"?>
<Config>
<Anrede>
<key_1>Herrn</key_1>
<key_2>Frau</key_2>
<key_3>Herrn Dr.</key_3>
<key_4>Frau Dr.</key_4>
<key_5>Herrn Dr. Med.</key_5>
</Anrede>
</Config>
答案 0 :(得分:1)
您的Descendants("Anrede")
查询将获取元素Andrede
,并且读取Value
属性将返回所有后代文本节点的连接,这是您在组合框。
你想要的是它的每个子元素值:
var items - doc.Descendants("Anrede")
.Elements()
.Select(x => x.Value.Trim())
.ToList();
答案 1 :(得分:1)
您可以像这样更改代码:
var xmlDocument = XDocument.Load(configfile);
var anredeItems = xmlDocument.Root.Elements("Anrede").Elements().Select(p => p.Value.Trim());
anredeNrComboBox.DataSource = anredeItems.ToList();