1
我试图编写一个Winforms应用程序,它在TreeView中显示任何已打开的XML文件节点(只有它是节点),并分别显示所选节点的属性在TreeView中选择)(例如显示在列表框中)。我试图通过使用下面的代码来实现这一点,但它会抛出一个异常:'family \ parent'具有无效的标记。C#从TreeView路径获取XDocument的XElement属性
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设计中的一个错误。 – zx485
我的意思是解决这个问题,但不知怎么管理忘记它。谢谢。 –