如何编写迭代来循环遍历xml文件上的父标记,如下所示:
<collection>
<parent>
<child1>DHL</child1>
<child2>9000000131</child2>
<child3>ISS Gjøvik</child13>
<child4>ISS Gjøvik</child4>
<child5>ISS Gjøvik</child5>
<child6>9999000000136</child6>
</parent>
<parent>
<child1>DHL</child1>
<child2>9000000132</child2>
<child3>ISS Gjøvik</child13>
<child4>ISS Gjøvik</child4>
<child5>ISS Gjøvik</child5>
<child6>9999000000136</child6>
</parent>
<parent>
<child1>DHL</child1>
<child2>9000000134</child2>
<child3>ISS Gjøvik</child13>
<child4>ISS Gjøvik</child4>
<child5>ISS Gjøvik</child5>
<child6>9999000000136</child6>
</parent>
</collection>
我需要将child1的值作为主键插入数据库。
答案 0 :(得分:1)
您是否尝试过XmlReader?到目前为止你有什么?请告诉我们一些代码。提醒一下,StackOverflow是一个帮助台,而不是编程服务。
我在其中一个标签中看到了DHL。如果它指的是邮政递送公司,他们有一个易于在.NET代码中使用的API(SDK)..
如果您想使用XML(反)序列化,我建议您开始阅读System.Xml.Serialization命名空间文档。 Microsoft提供了足够的文档和示例。
指向名称空间文档的链接:https://msdn.microsoft.com/en-us/library/system.xml.serialization(v=vs.110).aspx
以下是一些示例,其中包含将xml文档反序列化为poco类所需的任何内容: https://msdn.microsoft.com/en-us/library/58a18dwa(v=vs.110).aspx
答案 1 :(得分:0)
假设您的xml在字符串变量xml
中:
var xdoc = XDocument.Parse(xml);
foreach (var parentEls in xdoc.Root.Elements("parent"))
{
string child1Value = parentEls.Element("child1").Value;
// your logic using child1 value
}
请注意,您的xml格式错误 - <child3>
已被</child13>
关闭。
答案 2 :(得分:0)
使用xml linq解析所有内容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
var results = doc.Descendants("parent").Select(x => new {
child1 = (string)x.Element("child1"),
child2 = (string)x.Element("child2"),
child3 = (string)x.Element("child3"),
child4 = (string)x.Element("child4"),
child5 = (string)x.Element("child5"),
child6 = (string)x.Element("child6")
}).ToList();
}
}
}