net 解析XML字符串

zhongwei127day 2016-04-06 04:03:37
//-----------------------------------------------这是别人发过来的xml字符串(string类型的)--------------------------------------
<?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>
//------------------------------------------------------------------------XML原始格式-----只供参考------------------------------------------------

这个XML文件分成三个部分,要求每个部分都要把里面的name属性值 和 标签值取出来
比如:
if(aa = 标签[“name”]属性)
{
打印出标签的值,存入数据库
}

现在我想通过标签的name属性来查询这个标签的值
...全文
308 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
跳动de指尖 2016-04-07
  • 打赏
  • 举报
回复
引用 10 楼 starfd 的回复:
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("******************");
}
错了错了,应该这样

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));
}
跳动de指尖 2016-04-07
  • 打赏
  • 举报
回复
引用 10 楼 starfd 的回复:
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("******************");
}

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("******************");
}
zhongwei127day 2016-04-07
  • 打赏
  • 举报
回复
引用 6 楼 starfd 的回复:
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("******************");
}
引用 6 楼 starfd 的回复:
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("******************");
}
引用 7 楼 dalmeeme 的回复:
[quote=引用 5 楼 zhongwei127day 的回复:] [quote=引用 4 楼 zhongwei127day 的回复:] [quote=引用 3 楼 dalmeeme 的回复:]
			var nodes = xmlDoc.SelectNodes(@"/root/data/*/record/attribute");
			foreach (XmlNode node in nodes)
				Console.WriteLine(node.Attributes["name"].Value + ":" + node.InnerXml);
获取之后~我直接“node.Attributes["name"].Value + ":" + node.InnerXml”打印出来~~为什么为0 呢~大神[/quote] 大神~你这思路基本是对的~能不能这么写var nodes = xmlDoc.SelectNodes(@"/root/data/*/ main /record/attribute"); 因为 我这个XML分三个模块,是一个模块取出放在一张表内[/quote] var nodes = xmlDoc.SelectNodes(@"/root/data/main/record/attribute");[/quote] 大神~如果我第二个和第三个模块有多条信息,也就是多个<record></record> 我该怎么循环取他们的值呢
範先森 2016-04-06
  • 打赏
  • 举报
回复
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("XMLFile.xml"); XmlNode bodyNode = xmlDoc.ChildNodes[1]; 获取到最下面一层之后 if (bodyNode3.ChildNodes.Count > 0) { foreach (XmlNode xn in bodyNode3.ChildNodes) {//此处获取值并执行需要做的操作 } }
dalmeeme 2016-04-06
  • 打赏
  • 举报
回复
引用 5 楼 zhongwei127day 的回复:
[quote=引用 4 楼 zhongwei127day 的回复:] [quote=引用 3 楼 dalmeeme 的回复:]
			var nodes = xmlDoc.SelectNodes(@"/root/data/*/record/attribute");
			foreach (XmlNode node in nodes)
				Console.WriteLine(node.Attributes["name"].Value + ":" + node.InnerXml);
获取之后~我直接“node.Attributes["name"].Value + ":" + node.InnerXml”打印出来~~为什么为0 呢~大神[/quote] 大神~你这思路基本是对的~能不能这么写var nodes = xmlDoc.SelectNodes(@"/root/data/*/ main /record/attribute"); 因为 我这个XML分三个模块,是一个模块取出放在一张表内[/quote] var nodes = xmlDoc.SelectNodes(@"/root/data/main/record/attribute");
  • 打赏
  • 举报
回复
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("******************");
}
zhongwei127day 2016-04-06
  • 打赏
  • 举报
回复
引用 3 楼 dalmeeme 的回复:
			var nodes = xmlDoc.SelectNodes(@"/root/data/*/record/attribute");
			foreach (XmlNode node in nodes)
				Console.WriteLine(node.Attributes["name"].Value + ":" + node.InnerXml);
获取之后~我直接“node.Attributes["name"].Value + ":" + node.InnerXml”打印出来~~为什么为0 呢~大神
zhongwei127day 2016-04-06
  • 打赏
  • 举报
回复
引用 4 楼 zhongwei127day 的回复:
[quote=引用 3 楼 dalmeeme 的回复:]
			var nodes = xmlDoc.SelectNodes(@"/root/data/*/record/attribute");
			foreach (XmlNode node in nodes)
				Console.WriteLine(node.Attributes["name"].Value + ":" + node.InnerXml);
获取之后~我直接“node.Attributes["name"].Value + ":" + node.InnerXml”打印出来~~为什么为0 呢~大神[/quote] 大神~你这思路基本是对的~能不能这么写var nodes = xmlDoc.SelectNodes(@"/root/data/*/ main /record/attribute"); 因为 我这个XML分三个模块,是一个模块取出放在一张表内
dalmeeme 2016-04-06
  • 打赏
  • 举报
回复
			var nodes = xmlDoc.SelectNodes(@"/root/data/*/record/attribute");
			foreach (XmlNode node in nodes)
				Console.WriteLine(node.Attributes["name"].Value + ":" + node.InnerXml);
zhongwei127day 2016-04-06
  • 打赏
  • 举报
回复
引用 1 楼 dalmeeme 的回复:
			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();
如果我要全部循环~我要该怎么做
dalmeeme 2016-04-06
  • 打赏
  • 举报
回复
			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();

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧