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
我的意思是解決這個問題,但不知怎麼管理忘記它。謝謝。 –