XML格式字符串解析插入SQL数据库

AOHMYGOD 2016-05-23 05:51:47
如题,现在有如下的XML格式的字符串,怎么把它解析插入到SQL数据库?
<Id>1</Id><ProductName>电视</ProductName><MadeTime>1905-07-07T00:00:00+08:00</MadeTime><Price>3200</Price><UserName>Robin</UserName>
<Id>2</Id><ProductName>电脑</ProductName><MadeTime>1905-06-29T00:00:00+08:00</MadeTime><Price>7200</Price><UserName>zoray</UserName>
<Id>3</Id><ProductName>XBOX ONE</ProductName><MadeTime>1905-07-02T00:00:00+08:00</MadeTime><Price>5200</Price><UserName>James</UserName>
<Id>4</Id><ProductName>XBOX</ProductName><MadeTime>1905-07-04T00:00:00+08:00</MadeTime><Price>4200</Price><UserName>JERRY</UserName>
<Id>5</Id><ProductName>PSP4</ProductName><MadeTime>1905-07-03T00:00:00+08:00</MadeTime><Price>4200</Price><UserName>TOM</UserName>
<Id>6</Id><ProductName>PSP ONE</ProductName><MadeTime>1905-07-06T00:00:00+08:00</MadeTime><Price>3200</Price><UserName>TONY</UserName>
其中Id 为主键。
...全文
145 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
AOHMYGOD 2016-05-30
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
linqtoxml读取成实体 或者反序列化应该也可以 另外你这个缺少根元素,如果你拿到的xml字符串就是这样的话,那你可以加个根节点"<root>"+xml+"</root>"
已解决 谢谢
  • 打赏
  • 举报
回复
linqtoxml读取成实体 或者反序列化应该也可以 另外你这个缺少根元素,如果你拿到的xml字符串就是这样的话,那你可以加个根节点"<root>"+xml+"</root>"
AOHMYGOD 2016-05-24
  • 打赏
  • 举报
回复
引用 2 楼 Yobach 的回复:

XmlDocument doc = new XmlDocument();
            doc.Load("E:"+@"\新建文本文档.xml");
            XmlNodeList node = doc.SelectNodes("/SystemConfig/Product");
            for (int i = 0; i < node.Count; i++)
            {
                string id = node.Item(i).SelectSingleNode("/SystemConfig/Product/Id").InnerText;
                string productName = node.Item(i).SelectSingleNode("/SystemConfig/Product/ProductName").InnerText;
                string madeTime = node.Item(i).SelectSingleNode("/SystemConfig/Product/MadeTime").InnerText;
                string price = node.Item(i).SelectSingleNode("/SystemConfig/Product/Price").InnerText;
                string UserName = node.Item(i).SelectSingleNode("/SystemConfig/Product/UserName").InnerText;
                //获取到值插入数据库
            }

<Product>
<Id>1</Id><ProductName>电视</ProductName><MadeTime>1905-07-07T00:00:00+08:00</MadeTime><Price>3200</Price><UserName>Robin</UserName>
</Product>
<Product>
<Id>2</Id><ProductName>电脑</ProductName><MadeTime>1905-06-29T00:00:00+08:00</MadeTime><Price>7200</Price><UserName>zoray</UserName>
</Product>
<Product>
<Id>3</Id><ProductName>XBOX ONE</ProductName><MadeTime>1905-07-02T00:00:00+08:00</MadeTime><Price>5200</Price><UserName>James</UserName>
</Product>
<Product>
<Id>4</Id><ProductName>XBOX</ProductName><MadeTime>1905-07-04T00:00:00+08:00</MadeTime><Price>4200</Price><UserName>JERRY</UserName>
</Product>
<Product>
<Id>5</Id><ProductName>PSP4</ProductName><MadeTime>1905-07-03T00:00:00+08:00</MadeTime><Price>4200</Price><UserName>TOM</UserName>
</Product>
<Product>
<Id>6</Id><ProductName>PSP ONE</ProductName><MadeTime>1905-07-06T00:00:00+08:00</MadeTime><Price>3200</Price><UserName>TONY</UserName>
</Product>
不行啊,我这个是XML字符串,Load加载的应该是XML文档吧 loadXML()也报异常“+ $exception {"有多个根元素。 第 1 行,位置 151。"} System.Exception {System.Xml.XmlException} ”
AOHMYGOD 2016-05-24
  • 打赏
  • 举报
回复
引用 2 楼 Yobach 的回复:

XmlDocument doc = new XmlDocument();
            doc.Load("E:"+@"\新建文本文档.xml");
            XmlNodeList node = doc.SelectNodes("/SystemConfig/Product");
            for (int i = 0; i < node.Count; i++)
            {
                string id = node.Item(i).SelectSingleNode("/SystemConfig/Product/Id").InnerText;
                string productName = node.Item(i).SelectSingleNode("/SystemConfig/Product/ProductName").InnerText;
                string madeTime = node.Item(i).SelectSingleNode("/SystemConfig/Product/MadeTime").InnerText;
                string price = node.Item(i).SelectSingleNode("/SystemConfig/Product/Price").InnerText;
                string UserName = node.Item(i).SelectSingleNode("/SystemConfig/Product/UserName").InnerText;
                //获取到值插入数据库
            }

<Product>
<Id>1</Id><ProductName>电视</ProductName><MadeTime>1905-07-07T00:00:00+08:00</MadeTime><Price>3200</Price><UserName>Robin</UserName>
</Product>
<Product>
<Id>2</Id><ProductName>电脑</ProductName><MadeTime>1905-06-29T00:00:00+08:00</MadeTime><Price>7200</Price><UserName>zoray</UserName>
</Product>
<Product>
<Id>3</Id><ProductName>XBOX ONE</ProductName><MadeTime>1905-07-02T00:00:00+08:00</MadeTime><Price>5200</Price><UserName>James</UserName>
</Product>
<Product>
<Id>4</Id><ProductName>XBOX</ProductName><MadeTime>1905-07-04T00:00:00+08:00</MadeTime><Price>4200</Price><UserName>JERRY</UserName>
</Product>
<Product>
<Id>5</Id><ProductName>PSP4</ProductName><MadeTime>1905-07-03T00:00:00+08:00</MadeTime><Price>4200</Price><UserName>TOM</UserName>
</Product>
<Product>
<Id>6</Id><ProductName>PSP ONE</ProductName><MadeTime>1905-07-06T00:00:00+08:00</MadeTime><Price>3200</Price><UserName>TONY</UserName>
</Product>
谢谢,我先试试。
Yobach 2016-05-24
  • 打赏
  • 举报
回复

XmlDocument doc = new XmlDocument();
            doc.Load("E:"+@"\新建文本文档.xml");
            XmlNodeList node = doc.SelectNodes("/SystemConfig/Product");
            for (int i = 0; i < node.Count; i++)
            {
                string id = node.Item(i).SelectSingleNode("/SystemConfig/Product/Id").InnerText;
                string productName = node.Item(i).SelectSingleNode("/SystemConfig/Product/ProductName").InnerText;
                string madeTime = node.Item(i).SelectSingleNode("/SystemConfig/Product/MadeTime").InnerText;
                string price = node.Item(i).SelectSingleNode("/SystemConfig/Product/Price").InnerText;
                string UserName = node.Item(i).SelectSingleNode("/SystemConfig/Product/UserName").InnerText;
                //获取到值插入数据库
            }

<Product>
<Id>1</Id><ProductName>电视</ProductName><MadeTime>1905-07-07T00:00:00+08:00</MadeTime><Price>3200</Price><UserName>Robin</UserName>
</Product>
<Product>
<Id>2</Id><ProductName>电脑</ProductName><MadeTime>1905-06-29T00:00:00+08:00</MadeTime><Price>7200</Price><UserName>zoray</UserName>
</Product>
<Product>
<Id>3</Id><ProductName>XBOX ONE</ProductName><MadeTime>1905-07-02T00:00:00+08:00</MadeTime><Price>5200</Price><UserName>James</UserName>
</Product>
<Product>
<Id>4</Id><ProductName>XBOX</ProductName><MadeTime>1905-07-04T00:00:00+08:00</MadeTime><Price>4200</Price><UserName>JERRY</UserName>
</Product>
<Product>
<Id>5</Id><ProductName>PSP4</ProductName><MadeTime>1905-07-03T00:00:00+08:00</MadeTime><Price>4200</Price><UserName>TOM</UserName>
</Product>
<Product>
<Id>6</Id><ProductName>PSP ONE</ProductName><MadeTime>1905-07-06T00:00:00+08:00</MadeTime><Price>3200</Price><UserName>TONY</UserName>
</Product>
Justin-Liu 2016-05-24
  • 打赏
  • 举报
回复
XmlDocument相关的类

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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