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}