关于复杂XML解析成DataTable,求大神解答

苦逼de小Coder 2012-09-25 10:50:24
XML文件如下:
<?xml version="1.0" encoding="gb2312"?>
<air_info ret_value="1" date="14SEP(FRI)" from="SHA" to="CAN" fromname="上海虹桥" toname="广州" Mileage="1308" fule_adult="130" fule_child="60">
<airline line_number="MU5307" share_line="" company="东方航空" sc="SHA" sa="上海虹桥机场" ac="CAN" aa="广州白云机场" stime="0730" atime="0950" airrax="50" fulerax="130" fueladu="130" fuelchd="60" food="1" food_detail="S" dfly="1" type="320" et="1" stn="T2" atn="--">
<c b="F" u="0" d="230折" p="2940" s="2" t="2"></c>
<c b="P" u="0" d="*未知" p="0" s="0" t="Q"></c>
<c b="A" u="0" d="*未知" p="0" s="0" t="S"></c>
<c b="Y" u="0" d="100折" p="1280" s="A" t="A"></c>
<c b="K" u="0" d="*未知" p="0" s="A" t="A"></c>
<c b="B" u="0" d="95折" p="1220" s="A" t="A"></c>
<c b="E" u="0" d="90折" p="1150" s="A" t="A"></c>
<c b="H" u="0" d="85折" p="1090" s="A" t="A"></c>
<c b="L" u="0" d="80折" p="1040" s="A" t="A"></c>
<c b="M" u="0" d="77折" p="990" s="0" t="Q"></c>
<c b="N" u="0" d="73折" p="930" s="0" t="Q"></c>
<c b="R" u="0" d="70折" p="880" s="0" t="Q"></c>
<c b="S" u="0" d="65折" p="830" s="0" t="Q"></c>
<c b="V" u="0" d="55折" p="700" s="0" t="Q"></c>
<c b="T" u="0" d="50折" p="640" s="0" t="Q"></c>
<c b="W" u="0" d="*未知" p="0" s="0" t="Q"></c>
<c b="G" u="0" d="*未知" p="0" s="0" t="Q"></c>
<c b="X" u="0" d="*未知" p="0" s="0" t="Q"></c>
<c b="Q" u="0" d="*未知" p="0" s="A" t="A"></c>
<c b="I" u="0" d="*未知" p="0" s="5" t="5"></c>
</airline>
</air_info>
...全文
243 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zz5174213267 2012-09-25
  • 打赏
  • 举报
回复
如果是有选择性的筛选解析成dt的话,直接用liqu查询的枚举再转成dt
zf904 2012-09-25
  • 打赏
  • 举报
回复
//讲某路径下xml文件读入DataSet
string fileName = DataCom.UploadPath + "\\" + tableName;
if (File.Exists(fileName + ".xml") == false)
{
MessageBox.Show("没有数据包。");
return false;
}

////初始化XML架构文件操作流
//FileStream FsXSD = new FileStream(fileName + ".xsd", FileMode.Open);
////初始化XML架构读取设备
//XmlTextReader xtrXSD = new XmlTextReader(FsXSD);

//初始化DataSet
DataSet DS = new DataSet();
////载入XML架构到DS中
//DS.ReadXmlSchema(xtrXSD);
//按照装载的XML架构载入XML数据到DS
DS.ReadXml(fileName + ".xml", XmlReadMode.ReadSchema);
hfjfhxfufckg 2012-09-25
  • 打赏
  • 举报
回复
C#里有个ReadXml的方法 可以将XML转换成datatable类型
DataTable.ReadXml(Stream stream)
苦逼de小Coder 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

对比的table有个固定的格式 是节点里面的每个属性都对应一个字段吗?
子节点与父节点应该也有关系吧 条件又是什么呢?
[/Quote]
只对比一部分,不全部对比,只是需要对比之后添加一些数值或者修改一些数值
hfjfhxfufckg 2012-09-25
  • 打赏
  • 举报
回复
对比的table有个固定的格式 是节点里面的每个属性都对应一个字段吗?
子节点与父节点应该也有关系吧 条件又是什么呢?
苦逼de小Coder 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

解析成一个datatable不是很麻烦吗?
[/Quote]
解析出来的数据要和数据库中的数据对比
hfjfhxfufckg 2012-09-25
  • 打赏
  • 举报
回复
解析成一个datatable不是很麻烦吗?
苦逼de小Coder 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你是说将整个XML都解析成DATATABLE还是说只是将某一个节点下的内容解析成DATATABLE类型?
[/Quote]
将整个XML解析成datatable
hfjfhxfufckg 2012-09-25
  • 打赏
  • 举报
回复
你是说将整个XML都解析成DATATABLE还是说只是将某一个节点下的内容解析成DATATABLE类型?
苦逼de小Coder 2012-09-25
  • 打赏
  • 举报
回复
UP!别沉
bdmh 2012-09-25
  • 打赏
  • 举报
回复
先搞明白如何解析xml,剩下的就是将取得的数据,自己组织到datatable

110,620

社区成员

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

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

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