2014-03-13 30 views
0

XML,如何在c#中選擇特定的XML節點?

<A> 
    <B id="ABC"> 
     <C name="A" /> 
     <C name="B" /> 
     <C name="C" /> 
     <C name="G" /> 
    </B> 
    <B id="ZYZ"> 
     <C name="1" /> 
     <C name="2" /> 
     <C name="3" /> 
     <C name="4" /> 
    </B> 
    </A> 

,我需要選擇只<C>節點和分配給一個變量。

我用以下C#代碼不工作,

var asdf = c.Elements("C");

asdf應該包含,

<C name="A" /> 
<C name="B" /> 
<C name="C" /> 
<C name="G" /> 
<C name="1" /> 
<C name="2" /> 
<C name="3" /> 
<C name="4" /> 

任何幫助表示讚賞!

+1

這裏'c'是什麼?你沒有給我們足夠的上下文。這聽起來像你只是在尋找'Descendants(「C」)'方法而不是'Elements(「C」)'。 –

回答

2

您需要Descendants,如:

var cNodes = document.Descendants("C"); 

對於輸出:

foreach (var item in cNodes) 
{ 
    Console.WriteLine(item); 
} 

您將獲得:

<C name="A" /> 
<C name="B" /> 
<C name="C" /> 
<C name="G" /> 
<C name="1" /> 
<C name="2" /> 
<C name="3" /> 
<C name="4" /> 
2

此運行:

XElement x = XElement.Parse("your_xml_string"); 

var asdf=x.Elements("B").Elements("C"); 
+0

TLama你的編輯有什麼變化?對不起,但我是新來的。 –