2009-10-30 86 views
1

我有這樣的XML:的LINQ to XML問題:與特定的返回節點選擇

<?xml version="1.0" encoding="utf-8"?> 

<ConfiguraCanale ID_Comando="1"> 
     <canaleDigitalOUTPUT ID_Canale="1" > 
      <stato>0</stato> 
     </canaleDigitalOUTPUT> 
    </ConfiguraCanale> 


    <ConfiguraCanale ID_Comando="2"> 
     <canaleAnalogicoINPUT ID_Canale="2">     
      <timeAttesaPreCamp>00:03:00</timeAttesaPreCamp> 
     </canaleAnalogicoINPUT> 
    </ConfiguraCanale>  

    </Comandi> 

我必須選擇節點canaleAnalogicoINPUT,這是簡單的,但我還必須將ID_Comando從ConfiguraCanale升級到canaleAnalogicoINPUT ..因爲我選擇節點canaleAnalogicoINPUT我無法獲得節點ConfiguraCanale的屬性。

我幾次使用Linq to XML ...

謝謝!!!

+0

我不明白你的問題。你爲什麼不做2個選擇,一個用於ConfiguraCanale(並提取ID_Comando),另一個用於canaleAnalogicoINPUT?你能澄清你的問題嗎? – Nestor 2009-10-30 12:11:14

回答

0

這可能是這樣的:

var inputs = from e in doc.Descendants("canaleAnalogicoINPUT") 
      select new 
      { 
       CanaleAnalogicoINPUT = e, // extract what you need from this node 
       IDComando = int.Parse(e.Parent.Attribute("ID_Comando").Value) 
      }; 
+0

我解決與 ID_Comando = canale.Parent.Attribute( 「ID_Comando」)值 在這種情況下也FirstAttribute是好的。 ID_Comando = canale.Parent.FirstAttribute.Value, 母公司正解...我必須學習更多! :( – malvin 2009-10-30 13:24:57

0
var inputs = from e in doc.Elements("ConfiguraCanale") 
      select new 
      { 
       IDComando = e.Attribute("ID_Comando").Value, 
       CanaleAnalogicoINPUT = e.Element("canaleAnalogicoINPUT") 
      };