xml使用linq解析
问题描述:
我有一个组合框,当用户选择它们时,xml被解析。xml使用linq解析
如果我选择item1,我需要选择此“C:\ folder1”作为路径。 第2项: “C:\文件夹2” 第3项: “C:\ folder3”
我的XML文件:
<?xml version="1.0"?>
<main>
<target>C:\folder1</target>
<target>C:\folder2</target>
<target>C:\folder3</target>
</main>
我使用的XDocument做解析:
private void pathselection()
{
XDocument pathdoc = XDocument.Load(@"C:\GUI\path.xml");
var abc = from target in pathdoc.Descendants("target")
...
...
}
现在我被困在这里。我应该包括如果语句内pathselection()?我如何解析路径?
EDIT1:
顺便说一句,我想用来存储这些路径字符串
string selectedpath1 = "";
答
鉴于在ComboBox
比赛的可选项目在XML中的项目,你可以得到由target
元素index:
private void pathselection()
{
XDocument pathdoc = XDocument.Load(@"C:\GUI\path.xml");
var abc = pathdoc.Descendants("target")
.Where((e, i) => i == MyComboBox.SelectedIndex)
.Single();
}
你可能想要处理的事情,如索引不匹配,你可能想要使用SingleOrDefault
或FirstOrDefault
来处理。
嗨嗨,你是什么意思,当在combobox中选定的项目匹配的项目在XML?意味着我必须将选定的项目添加为标签而不是“目标”?这意味着,我的XML:' C:\文件夹1 C:\文件夹2 C:\ folder3 ' –
jeremychan
2011-04-08 09:03:32
我的意思是,除非你使用XML数据绑定'ComboBox',你必须确保您具有相同数量的项目,以便您可以将选择与数据匹配。 ComboBox中需要三个项目。当你选择第一个时,它将有索引0,它将使用我样本中的代码选择你的第一个''元素。但是,我认为使用xml数据绑定'ComboBox'可能会更好,如果您希望不同于可见文本,可以为数据添加一些属性。另一方面,我可能误解了你的问题? –
2011-04-08 10:25:33