代码之家  ›  专栏  ›  技术社区  ›  malvin

LINQ到XML问题:返回具有特定select的节点

  •  1
  • malvin  · 技术社区  · 16 年前

    我有以下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>
    

    我必须选择节点CanaleAlogiCoInput,这很简单,但我还必须将ID_Comando从ConfiguralCanale带到CanaleAlogiCoInput。。因为我选择了节点canleanalogiconput,所以无法获取节点canale的属性。

    我很少使用Linq转换XML。。。

    谢谢

    2 回复  |  直到 16 年前
        1
  •  0
  •   bruno conde    16 年前

    可能是这样的:

    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)
                 };
    
        2
  •  0
  •   Thomas Levesque    16 年前
    var inputs = from e in doc.Elements("ConfiguraCanale")
                 select new 
                 {
                     IDComando = e.Attribute("ID_Comando").Value,
                     CanaleAnalogicoINPUT = e.Element("canaleAnalogicoINPUT")
                 };