首页新闻找找看学习计划

linqtoxml节点筛选。

0
悬赏园豆:20 [已解决问题] 解决于 2012-04-25 16:48
<data>
  <item id="1">
    <child id="1" name="aa"></child>
    <child id="2" name="bb"></child>
    <child id="3" name="cc"></child>
  </item>
  <item id="2">
    <child id="1" name="aa"></child>
    <child id="2" name="bb"></child>
    <child id="3" name="cc"></child>
  </item>
</data>

我想用一个linq根据传入的item节点的ID值和child节点的ID值 ,来获取对应的child节点下的name的属性值。 这个linq如何写啊,

telang的主页 telang | 小虾三级 | 园豆:646
提问于:2012-04-25 15:00
< >
分享
最佳答案
0
public static string GetName(int itemID, int childID)
{
    var x = XElement.Load(@"E:\test.xml");
    var value = x.Descendants("item")
        .SingleOrDefault(e => e.Attribute("id").Value == itemID + "")
        .Descendants("child")
        .SingleOrDefault(e => e.Attribute("id").Value == childID + "")
        .Attribute("name")
        .Value;
    return value;
}

跟楼上的差不多

收获园豆:10
artwl | 专家六级 |园豆:16526 | 2012-04-25 15:34

谢谢热情的回答!

telang | 园豆:646 (小虾三级) | 2012-04-25 16:47
其他回答(1)
-1
1             string iditem = "2";
2             string idchild = "3";
3             var element = XElement.Parse(xml);
4             var itemEle = element.Descendants("item").Where(r => r.Attribute("id").Value == iditem).First();
5             var childEle = itemEle.Descendants("child").Where(r => r.Attribute("id").Value == idchild).First();
6             var name = childEle.Attribute("name").Value;

随手一写,高手勿笑。

收获园豆:10
hystar | 园豆:38 (初学一级) | 2012-04-25 15:15

谢谢热情的回答!

支持(0) 反对(0) telang | 园豆:646 (小虾三级) | 2012-04-25 16:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册