XML读取到datatable中

chengli8710yea 2011-10-24 10:46:35
<?xml version="1.0" encoding="gb2312" ?>
<DOCUMENT>
<QUERYORDER>
<MERCHANTID>105420173995066</MERCHANTID>
<BRANCHID>420000000</BRANCHID>
<POSID>381450994</POSID>
<ORDERID>S111008183528687</ORDERID>
<ORDERDATE>2011-10-08 18:36:05</ORDERDATE>
<AMOUNT>1.00</AMOUNT>
<STATUS>成功</STATUS>
<REFUND>0.00</REFUND>
<ACCTYPE>12</ACCTYPE>
<SIGN>yyy</SIGN>
</QUERYORDER>
<QUERYORDER>
<MERCHANTID>105420173995066</MERCHANTID>
<BRANCHID>420000000</BRANCHID>
<POSID>381450994</POSID>
<ORDERID>S111008192748013</ORDERID>
<ORDERDATE>2011-10-08 19:28:50</ORDERDATE>
<AMOUNT>1.00</AMOUNT>
<STATUS>成功</STATUS>
<REFUND>0.00</REFUND>
<ACCTYPE>14</ACCTYPE>
<SIGN>xxx</SIGN>
</QUERYORDER>
</DOCUMENT>

小弟拜求各位大侠帮忙将此XML字符串读取到DATATABLE或者LIST中,谢谢!
...全文
212 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
挨踢直男 2011-10-24
  • 打赏
  • 举报
回复
        string xml = "你的xml字符串";
DataSet ds = new DataSet();
MemoryStream ms = new MemoryStream();
StreamWriter wr = new StreamWriter(ms);
wr.Write(xml);
wr.Flush();
ms.Seek(0, SeekOrigin.Begin);
ds.ReadXml(ms);
DataTable dt = ds.Tables[0];
1800包吃包住 2011-10-24
  • 打赏
  • 举报
回复
string XML=@"<userinfo>
<distinguishedName><![CDATA[CN=ss,OU=smop开发组,OU=内容管理平台研发组,OU=技术支持中心,OU=技术部,OU=IFENGUSERS,DC=staff,DC=ifeng,DC=com]]></distinguishedName>
<department><![CDATA[流媒体技术组]]></department>
<sn><![CDATA[aa]]></sn>
<givenName><![CDATA[]]></givenName>
<mail><![CDATA[luoy@ifeng.com]]></mail>
<cn><![CDATA[aa]]></cn>
<company><![CDATA[ccc]]></company>
<userPrincipalName><![CDATA[luoy@staff.ifeng.com]]></userPrincipalName>
<sAMAccountName><![CDATA[luoy]]></sAMAccountName>
<sAMAccountType><![CDATA[805306368]]></sAMAccountType>
</userinfo>";
string SN = "";
string Email = "";
XElement xl = XElement.Parse(XML);
foreach (XElement xll in xl.Elements())
{
if (xll.Name == "sn")
{
SN= xll.Value;
}
if (xll.Name == "mail")
{
Email= xll.Value;
}
}

这是我解析一个XML字符串的
你可以学下!!!
chengli8710yea 2011-10-24
  • 打赏
  • 举报
回复
我得到的是一个XML字符串,ds.ReadXml()行得通?
酷儿 2011-10-24
  • 打赏
  • 举报
回复
2楼正解 楼主没事应该多度娘一下
1800包吃包住 2011-10-24
  • 打赏
  • 举报
回复
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("TEXT.xml"));

最简单的读取到DataSet中!!!
弦弦 2011-10-24
  • 打赏
  • 举报
回复

IList<xmlModel> list = new List<xmlModel>();
try
{
doc.Load(mapPath);
XmlNodeList nodelist = doc.GetElementsByTagName("QUERYORDER");
foreach (XmlNode var in nodelist)
{
xmlModel mode = new xmlModel();
mode.Id = var.Attributes["MERCHANTID"].InnerText.ToString();
mode.Pwd = var.Attributes["BRANCHID"].InnerText.ToString();
mode.Ip = var.Attributes["POSID"].InnerText.ToString();
....
list.Add(mode);
}
}
孟子E章 2011-10-24
  • 打赏
  • 举报
回复
你先看你远程抓取回来的数据是什么样子的啊。你看看是否符合xml的格式要求啊
chengli8710yea 2011-10-24
  • 打赏
  • 举报
回复
那怎么解决啊,求大侠详解
孟子E章 2011-10-24
  • 打赏
  • 举报
回复
上面的错误是说你得到的不是合法的 xml文件
chengli8710yea 2011-10-24
  • 打赏
  • 举报
回复
大侠们的方法我都试了,但是报错,错误如下:
System.Xml.XmlException: Unexpected XML declaration. The XML declaration must be the first node in the document, and no white space characters are allowed to appear before it. Line 4, position 3.

我是远程抓取XML的数据,然后存入到DATATABLE或者LIST里面,XML字符串是抓取到了,但就是转换的时候出错

62,074

社区成员

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

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

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

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