2009-10-30 79 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") 
      };