string 类型的xml 转成 DataTable或者DataSet,然后插入数据库
我有
<DATE>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
</DATE>
</RESULT>
我有这样一个格式的 字符串, 一个<RS></RS>里面是一条数据,怎么把它一条条的插入到对应的数据库里面去啊。。。SqlDataAapter??
求帮忙。。。求学啊
XML String dataset 数据库 datatable --------------------编程问答-------------------- 先解析xml,把数据都拿出来 --------------------编程问答-------------------- 首先解决的是 你要怎么解析这个XML
第一 你可以使用 .net 提供xml序列化。
第二 自己手写解析(使用XPath或Linq)。 --------------------编程问答--------------------
string xmlStr = @"<DATE>--------------------编程问答-------------------- 这个,取到里面的值?? --------------------编程问答-------------------- 要拿出来然后放到 datatable里面??拿出来后临时存储?? --------------------编程问答-------------------- 找了好多,你说的言简意赅啊!!1 --------------------编程问答--------------------
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
</DATE>";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlStr);
foreach (XmlNode xn in xmlDoc.SelectNodes("/DATE/RS"))
{
string JGBM = xn.SelectSingleNode("JGBM").InnerText;//机构编码
string JGMC = xn.SelectSingleNode("JGMC").InnerText;//机构名称
}
/**/
/// <summary>
/// 将Xml内容字符串转换成DataSet对象
/// </summary>
/// <param name="xmlStr">Xml内容字符串</param>
/// <returns>DataSet对象</returns>
public static DataSet CXmlToDataSet(string xmlStr)
{
if (!string.IsNullOrEmpty(xmlStr))
{
StringReader StrStream = null;
XmlTextReader Xmlrdr = null;
try
{
DataSet ds = new DataSet();
//读取字符串中的信息
StrStream = new StringReader(xmlStr);
//获取StrStream中的数据
Xmlrdr = new XmlTextReader(StrStream);
//ds获取Xmlrdr中的数据
ds.ReadXml(Xmlrdr);
return ds;
}
catch (Exception e)
{
throw e;
}
finally
{
//释放资源
if (Xmlrdr != null)
{
Xmlrdr.Close();
StrStream.Close();
StrStream.Dispose();
}
}
}
else
{
return null;
}
}
调用
--------------------编程问答-------------------- 为什么不直接解析XML后遍历,然后插入数据库
string xmlStr = @"<DATE>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
</DATE>";
DataTable dt = new DataTable();
dt = CXmlToDataSet(xmlStr).Tables[0];
而非要中间在转换成DataTable呢? --------------------编程问答-------------------- 3L正解
取到数据行1 插入数据库
取到数据行2 插入数据库
............ --------------------编程问答--------------------
为什么不直接解析XML后遍历,然后插入数据库
而非要中间在转换成DataTable呢?
为什么不直接解析XML后遍历,然后插入数据库
而非要中间在转换成DataTable呢?
补充:.NET技术 , C#