首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

linq to xml求解,该如何处理

2012-12-16 
linq to xml求解,急急急?xml version1.0 encodingutf-8?WorkflowVmlBtnList id5 BtnSingl

linq to xml求解,急急急
<?xml version="1.0" encoding="utf-8"?>
<WorkflowVml>
  <BtnList id="5" >
    <BtnSingle id="A001" name="001"   defaultUrl="xxx.aspx"  ></BtnSingle>
    <BtnSingle id="A002" name="002"   defaultUrl="xxx.aspx"  ></BtnSingle>
    <BtnSingle id="A003" name="003"   defaultUrl="xxx.aspx"  ></BtnSingle>
    <BtnSingle id="A004" name="004"   defaultUrl="xxx.aspx"  ></BtnSingle>
  </BtnList>
  <BtnList id="7" >
      <BtnSingle id="B001" name="001"   defaultUrl="xxx.aspx" tar="rightFrame"  ></BtnSingle>
      <BtnSingle id="B002" name="002"   defaultUrl="xxx.aspx" tar="rightFrame"  ></BtnSingle>
      <BtnSingle id="B003" name="003"   defaultUrl="xxx.aspx" tar="rightFrame"  ></BtnSingle>
      <BtnSingle id="B004" name="004"   defaultUrl="xxx.aspx" tar="rightFrame"  ></BtnSingle>
  </BtnList>
</WorkflowVml>

  XDocument RoAuXml = XDocument.Load(Server.MapPath("Competence.xml"));
            var roauList = from roau in RoAuXml.Descendants("BtnList")
                           where roau.FirstAttribute.Value == "7"
                           select roau.Elements("BtnSingle");
 然后我不知道怎么从roauList里面把BtnSingle的id,name,defaulturl这些读出来呢?
[最优解释]
 foreach (var item in roauList)
 {
    foreach (var item1 in item)
    {
          Console.WriteLine("id:{0},name:{1},defaulturl:{2}",
                             item1.Attribute("id").Value,
                             item1.Attribute("name").Value,
                             item1.Attribute("defaulturl").Value);
    }
 }
[其他解释]
未将对象引用设置到对象的实例
[其他解释]


                           select roau.Elements("BtnSingle");
            foreach (var v in roauList)
            {
                foreach (var item in v)
                {
                    MessageBox.Show(item.Attribute("id").Value);
//其他类似
                }
            }


[其他解释]
试试,我估计应该可以。
// 加载某个xml文件
var doc = XDocument.Load(@"xxx.xml");

// 这样得到的btns应该是一个xElement的集合
var btns = doc.Descendants("BtnList")
.Where(d => d.FirstAttribute.Value == "7")
.Elements()
.SelectMany(e => e.Attributes());

// xElement.Name依次是id/name/defaultUrl/tar
// xElement.Value则是对应的值
foreach (var xElement in btns)
{
Console.WriteLine("{0}

热点排行