62,271
社区成员
发帖
与我相关
我的任务
分享
var data = source.Element("data");
if (data != null)
{
var a = data.Elements().Elements("record").SelectMany(x => x.Elements("attribute"));
data.Elements().Elements("record").SelectMany(x => x.Elements("attribute")).Select(x => new { Name = x.Attribute("name").Value, Value = x.Value }).ToList().ForEach(x => Console.WriteLine("{0} : {1}", x.Name, x.Value));
}
var source = XElement.Load(xml);
var data = source.Element("data");
if(data != null)
{
var mainOrder = data.Element("main");
var listMainOrder = mainOrder.Element("record").Elements("attribute").Select(x => new{name=x.Attribute("name").Value,Value:x.Value});
}
这样看着爽一些string xml = @"<?xml version=""1.0"" encoding=""UTF-8""?><root><header><name></name><govid>2012;dev;fasp0310;2012年;fasp_runtest</govid><acctyear>2012;dev;fasp0310;2012年;fasp_runtest</acctyear></header><data><main description=""主单""><record><attribute description=""编号"" name=""TaskCode"">RWSC2012-0601</attribute><attribute description=""类型"" name=""TaskType"">0</attribute><attribute description=""执行状态"" name=""TaskStatus"">1</attribute><attribute description=""年度"" name=""AcctYear"">2012</attribute><attribute description="""" name=""Department"">052</attribute><attribute description=""预算单位"" name=""AgencY"">052001</attribute><attribute description=""法定联系人"" name=""Text11""></attribute><attribute description=""预算单位联系人"" name=""LinkMan"">张靖</attribute><attribute description=""法定联系人电话"" name=""Text12""></attribute><attribute description=""预算单位联系电话"" name=""LinkTel"">2801139 18756971366</attribute><attribute description=""申请日期"" name=""ApplyDate"">20120817</attribute><attribute description=""期望完工日期"" name=""FinishDate""></attribute><attribute description=""金额"" name=""Amt"">1000000</attribute><attribute description=""组织形式"" name=""OrganizeType"">1</attribute><attribute description=""方式"" name=""PurchaseMethod"">0</attribute><attribute description=""执行机构"" name=""PurchaseDepartment"">A03</attribute><attribute description=""联系人"" name=""LinkDdpartmentMan""></attribute><attribute description=""联系人电话"" name=""LinkDepartmentManTel""></attribute><attribute description=""业务处室联系人"" name=""LinkGovMan"">杨辉</attribute><attribute description=""业务处室联系电话"" name=""LinkGovTel"">5100592</attribute><attribute description=""发送日期"" name=""SendTime"">20120824</attribute><attribute description=""是否审核"" name=""IsLeaderCheck"">0</attribute><attribute description=""原合同编号"" name=""LastContractCode""></attribute><attribute description=""项目"" name=""ProgramName"">电子护照软件改造</attribute><attribute description=""附件名称"" name=""FileName""></attribute></record></main><sub description=""品目明细单""><record><attribute description=""目录序号"" name=""ListNo"">24612</attribute><attribute description=""目录编码"" name=""PurchaseListId"">B10</attribute><attribute description=""品目执行状态"" name=""ListStatus"">0</attribute><attribute description=""规格型号"" name=""PurchaseModel"">软件升级</attribute><attribute description=""数量"" name=""Num"">1</attribute><attribute description=""计量单位"" name=""Unit"">套</attribute><attribute description=""单价"" name=""UnitPrice"">1000000</attribute><attribute description=""总价"" name=""TotalPrice"">1000000</attribute><attribute description=""备注"" name=""ReMark""></attribute></record></sub><detail description=""资金明细单""><record><attribute description=""资金性质"" name=""FundType"">99</attribute><attribute description=""预算来源"" name=""IndSource"">0</attribute><attribute description=""支付方式"" name=""PayType"">7</attribute><attribute description=""指标归口处室"" name=""BdgManaDivision"">323</attribute><attribute description=""支出经济分类"" name=""ExpEconormic"">0</attribute><attribute description=""支出功能分类"" name=""ExpFunc"">0</attribute><attribute description=""资金金额"" name=""UnitAmt"">1000000</attribute><attribute description=""备注"" name=""ReMark""></attribute></record></detail></data></root>";
XElement root = XElement.Parse(xml);
foreach (var ele in root.Element("data").Elements())
{
foreach (var e in ele.Elements("record"))//多个再加一层循环
{
foreach (var attr in e.Elements("attribute"))
{
Console.WriteLine(string.Format("{0} : {1}", attr.Attribute("name").Value, attr.Value));
}
Console.WriteLine("---------------------");
}
Console.WriteLine("******************");
}string xml = @"<?xml version=""1.0"" encoding=""UTF-8""?><root><header><name></name><govid>2012;dev;fasp0310;2012年;fasp_runtest</govid><acctyear>2012;dev;fasp0310;2012年;fasp_runtest</acctyear></header><data><main description=""主单""><record><attribute description=""编号"" name=""TaskCode"">RWSC2012-0601</attribute><attribute description=""类型"" name=""TaskType"">0</attribute><attribute description=""执行状态"" name=""TaskStatus"">1</attribute><attribute description=""年度"" name=""AcctYear"">2012</attribute><attribute description="""" name=""Department"">052</attribute><attribute description=""预算单位"" name=""AgencY"">052001</attribute><attribute description=""法定联系人"" name=""Text11""></attribute><attribute description=""预算单位联系人"" name=""LinkMan"">张靖</attribute><attribute description=""法定联系人电话"" name=""Text12""></attribute><attribute description=""预算单位联系电话"" name=""LinkTel"">2801139 18756971366</attribute><attribute description=""申请日期"" name=""ApplyDate"">20120817</attribute><attribute description=""期望完工日期"" name=""FinishDate""></attribute><attribute description=""金额"" name=""Amt"">1000000</attribute><attribute description=""组织形式"" name=""OrganizeType"">1</attribute><attribute description=""方式"" name=""PurchaseMethod"">0</attribute><attribute description=""执行机构"" name=""PurchaseDepartment"">A03</attribute><attribute description=""联系人"" name=""LinkDdpartmentMan""></attribute><attribute description=""联系人电话"" name=""LinkDepartmentManTel""></attribute><attribute description=""业务处室联系人"" name=""LinkGovMan"">杨辉</attribute><attribute description=""业务处室联系电话"" name=""LinkGovTel"">5100592</attribute><attribute description=""发送日期"" name=""SendTime"">20120824</attribute><attribute description=""是否审核"" name=""IsLeaderCheck"">0</attribute><attribute description=""原合同编号"" name=""LastContractCode""></attribute><attribute description=""项目"" name=""ProgramName"">电子护照软件改造</attribute><attribute description=""附件名称"" name=""FileName""></attribute></record></main><sub description=""品目明细单""><record><attribute description=""目录序号"" name=""ListNo"">24612</attribute><attribute description=""目录编码"" name=""PurchaseListId"">B10</attribute><attribute description=""品目执行状态"" name=""ListStatus"">0</attribute><attribute description=""规格型号"" name=""PurchaseModel"">软件升级</attribute><attribute description=""数量"" name=""Num"">1</attribute><attribute description=""计量单位"" name=""Unit"">套</attribute><attribute description=""单价"" name=""UnitPrice"">1000000</attribute><attribute description=""总价"" name=""TotalPrice"">1000000</attribute><attribute description=""备注"" name=""ReMark""></attribute></record></sub><detail description=""资金明细单""><record><attribute description=""资金性质"" name=""FundType"">99</attribute><attribute description=""预算来源"" name=""IndSource"">0</attribute><attribute description=""支付方式"" name=""PayType"">7</attribute><attribute description=""指标归口处室"" name=""BdgManaDivision"">323</attribute><attribute description=""支出经济分类"" name=""ExpEconormic"">0</attribute><attribute description=""支出功能分类"" name=""ExpFunc"">0</attribute><attribute description=""资金金额"" name=""UnitAmt"">1000000</attribute><attribute description=""备注"" name=""ReMark""></attribute></record></detail></data></root>";
XElement root = XElement.Parse(xml);
foreach(var ele in root.Element("data").Elements().Select(e=>e.Element("record")))
{
foreach(var attr in ele.Elements("attribute"))
{
Console.WriteLine(string.Format("{0} : {1}", attr.Attribute("name").Value, attr.Value));
}
Console.WriteLine("******************");
} var nodes = xmlDoc.SelectNodes(@"/root/data/*/record/attribute");
foreach (XmlNode node in nodes)
Console.WriteLine(node.Attributes["name"].Value + ":" + node.InnerXml); XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("test.xml");
string name = "LinkMan";
string r = xmlDoc.SelectSingleNode(@"/root/data/*/record/attribute[@name='" + name + "']").InnerXml;
Console.WriteLine(r);
Console.ReadKey();