2016-02-04 113 views
0

你好我想用linq和xdocument來顯示根節點的子節點的名字,但是沒有找到同樣方便的東西。下面如何在C#中用XDocument顯示Xml子元素名稱?

<temp> 
<Movies> 
    <Title>Man Of Steel</Title> 
    <Title>Kung Fu Panda</Title> 
    <Title>Thor</Title> 
</Movies> 
<Cars> 
    <Title>Racing</Title> 
    <Title>Vintage</Title> 
    <Title>Luxary</Title> 
</Cars> 
</temp> 

進出料口把我的XML給出的是:

  1. 電影
  2. 汽車

能否請您幫助我。還有一件事我希望這是動態完成的,這意味着從代碼中我不想放置元素的名稱。這是要的東西

XDocument xdoc = XDocument.Load("Folder.xml"); 
var element = xdoc.Root.Elements(); 
foreach(var a in element) 
{ 
    Console.WriteLine(a.Name); 
} 

該代碼是工作在控制檯應用程序,但是當我試圖在WPF應用程序來實現此爲這些類別創建單選按鈕的代碼顯示什麼也沒有做。它顯示空白。這就是我遇到問題的原因。

+3

您的代碼已經顯示電影和汽車,這是預期的輸出。我不太明白你的問題是什麼.. –

+1

重新檢查輸出的工作完美你想要什麼。 –

回答

1

你應該試試這個

foreach(var a in element) 
{ 
    RadioButton rdb = new RadioButton(); 
    rdb.content = a.Name.LocalName; 
} 

我希望這可能會有所幫助。

+1

啊!我犯了添加LocalName的錯誤。現在它工作正常。謝謝。 –

2

如果你真正希望列出所有的電影和汽車項目不是使用下面的代碼:

var xdoc = XDocument.Load("Folder.xml"); 
if (xdoc.Root != null) 
{ 
    var element = xdoc.Root.Elements(); 
    foreach (var a in element) 
    { 
     Console.WriteLine(a.Name); 
     foreach (var item in a.Elements()) 
     { 
      Console.WriteLine("\t" + item.Value); 
     } 
    } 
} 

輸出應該是:

Movies 
     Man Of Steel 
     Kung Fu Panda 
     Thor 
Cars 
     Racing 
     Vintage 
     Luxary 
相關問題