2013-01-24 74 views
1
查詢特定元素

我有這樣的代碼,我試圖調整找回剛纔的消息元素:中的XElement

public static void Main(string[] args) 
    { 

     Console.WriteLine("Querying tree loaded with XElement.Load"); 
     Console.WriteLine("----"); 
     XElement doc = XElement.Parse(@"<magento_api> 
       <messages> 
       <error> 
        <data_item> 
        <code>400</code> 
        <message>Attribute weight is not applicable for product type Configurable Product</message> 
        </data_item> 
        <data_item> 
        <code>400</code> 
        <message>Resource data pre-validation error.</message> 
        </data_item> 
       </error> 
       </messages> 
      </magento_api>"); 
     IEnumerable<XElement> childList = 
      from el in doc.Elements() 
      select el; 
     foreach (XElement e in childList) 
      Console.WriteLine(e); 
    } 

我希望得到如下結果:

<message>Attribute weight is not applicable for product type Configurable Product</message> 
<message>Resource data pre-validation error.</message> 

我是新來的整個查詢XElement的東西,所以任何幫助表示讚賞。

回答

1

你應該使用下列內容:

foreach (var descendant in doc.Descendants().Where(x => x.Name == "message")) 
{ 
    Console.WriteLine(descendant); 
} 

另外,我建議執行以下操作:

foreach (var descendant in doc.Descendants()) 
{ 
    Console.WriteLine(descendant); 
} 

爲了更好地理解的XElement是如何工作的。

+0

謝謝你的第二個例子。這絕對有助於更多。 – jared