【发布时间】:2016-05-15 07:26:04
【问题描述】:
我正在尝试编写一个 winforms 应用程序,该应用程序在 TreeView 中显示任何打开的 XML 文件节点(并且只有它的节点)并分别显示所选节点的属性(通过选择我的意思是在 TreeView 中选择)(显示在例如列表框)。我试图通过使用以下代码来实现这一点,但它抛出了一个异常说:'family\parent' has an invalid token.
private void TView__AfterSelect(object sender, TreeViewEventArgs e)
{
var doc = XDocument.Load(businessLayer.InputFilepath);
XElement myElement = doc.Root.XPathSelectElement(TView_.SelectedNode.FullPath);
try
{
foreach (var attribute in myElement.Attributes())
{
listBox1.Items.Add(attribute.Value);
}
}
catch (Exception)
{
}
}
我正在使用以下 XML 文件:
<?xml version="1.0" encoding="utf-8" ?>
<family>
<parent>
<id>grandfather</id>
<parent>
<id>father</id>
<parent>
<id>brother</id>
<child>
<id>niece</id>
</child>
</parent>
<parent>
<is>me</is>
<child>
<id>son</id>
</child>
<child>
<id>dauhter</id>
</child>
</parent>
<child>
<id>sister</id>
</child>
</parent>
<parent>
<id>uncle</id>
<parent>
<id>cousin sister</id>
<child>
<id>second cousin</id>
</child>
</parent>
<child>
<id>cousin brother</id>
</child>
</parent>
</parent>
</family>
我不知道我还能尝试什么,因此感谢您的帮助。
【问题讨论】:
-
如果您的 XML 元素中没有任何属性,为什么还要迭代属性?它可能会返回
NULL。看起来像 XML 设计中的一个错误。 -
我本想解决这个问题,但不知何故忘记了。谢谢。
标签: c# xml linq xpath treeview