首页新闻找找看学习计划

解析 XML 文件 ,怎么用vs2010把2个子节点下的数据添加到同一个表,

0
悬赏园豆:50 [已解决问题] 解决于 2016-12-30 20:57

<CBECMESSAGE>

  <MESSAGEHEAD>

    <MESSAGEID>报文编号唯一标示(推荐使用GUID)</ MESSAGEID >

    <MESSAGETYPE>报文类型</MESSAGETYPE>

    <SENDERID>SENDERID</SENDERID>

    <RECEIVERID>RECEIVERID</RECEIVERID>

    <SENDTIME>yyyy-MM-ddTHH:mm:ss</SENDTIME>

  </MESSAGEHEAD>

  <MESSAGEBODY>

       <BODYMASTER>

      <ORDERNO>DD12345678912345</ORDERNO>
      <CBECBILLNO>QD12345678912345</CBECBILLNO >
      <CROSS_ORDER_ID >KJDD123456789123</CROSS_ORDER_ID>
      <REG_NO>ZC1234567</REG_NO>
      <REG_NAME>供应链服务有限公司</REG_NAME>
      <CARRIER_CODE>CYR123456789123456789</CARRIER_CODE>
      <CARRIER_NAME>供应链服务有限公司</CARRIER_NAME>
      <TRADE_CO>YKJ1234567</TRADE_CO>
      <TRADE_CNAME>电子商务服务有限公司</TRADE_CNAME>
      <APL_CODE>SB12345678</APL_CODE>
      <APL_NAME>商务服务有限公司</APL_NAME>

       </BODYMASTER>

       <GOODS_RECORD>

      <NO>1</NO>
      <GOODSNO>GN215487963215478962</GOODSNO>
      <GOODS_CN>鞋带</GOODS_CN>
      <GOODS_EN></GOODS_EN>
      <HS_CODE>5806320090</HS_CODE>
      <GOODS_MODEL>鞋带;机织;100%化学纤维</GOODS_MODEL>
      <GOODS_BRAND>Aventure牌</GOODS_BRAND>
      <COUNTRY>142</COUNTRY>
      <QUANTITY>011</QUANTITY>
      <UNIT>5</UNIT>

    </GOODS_RECORD>

  </MESSAGEBODY>

</CBECMESSAGE>

如上,是XML报文的格式。问题如下:

<BODYMASTER>、<GOODS_RECORD>这两个子节点下的数据我已经解析成DataSet了,其中包含了这BODYMASTER表、GOODS_RECORD表这2个表,怎么把DataSet的这两个表的数据解析成一个到一个head表里面?

差不哆丨好先生的主页 差不哆丨好先生 | 初学一级 | 园豆:0
提问于:2016-12-28 21:14
< >
分享
最佳答案
0

BODYMASTER,GOODS_RECORD两个节点下的内容数据类型和名称都不完全一样,放到一张datatable似乎不太合适。

如果非要放到一张表,那就创建datatable,列数以BODYMASTER,GOODS_RECORD两者中子节点数目多的为准,建议再加一列,NodeType,用来区分是BODYMASTER还是GOODS_RECORD。

 

收获园豆:25
LightSmaile | 菜鸟二级 |园豆:249 | 2016-12-29 12:44
其他回答(4)
0

写表只能DataTable?然后Update?

即使这样,何况你也还可以创建一张嘛,然后把另两张写进去。 

 

收获园豆:15
花飘水流兮 | 园豆:10297 (专家六级) | 2016-12-28 23:35

大哥,不好意思,问题写错了,是解析成了一个DataSet,里面包含了BODYMASTER表、GOODS_RECORD表这2个表,怎么把他们里面的数据解析成一个表呢?

支持(0) 反对(0) 差不哆丨好先生 | 园豆:0 (初学一级) | 2016-12-28 23:55

@差不哆丨好先生: new 一个DataSet,弄进去,好像叫Tables

支持(0) 反对(0) 花飘水流兮 | 园豆:10297 (专家六级) | 2016-12-29 00:28
0

DataSet.ReadXml ?

收获园豆:5
Daniel Cai | 园豆:10374 (专家六级) | 2016-12-29 10:39
0

首先你这是在做接口开发?数据本地化?

你的意思是把BODYMASTER表、GOODS_RECORD表这2个表合并为一张表?为什么要解析成dataset?直接反序列化为一个实体不行吗?操作实体比操作datatable简单很多。

 

收获园豆:5
~扎克伯格 | 园豆:1797 (小虾三级) | 2016-12-29 12:50
0

我懂了。思路是在数据库新建一个表,其中这个表的字段,必须都包含了2个表的所有子节点,然后在用foreach循环第一个表写入新建的表,第二个表也一样做就好了

差不哆丨好先生 | 园豆:0 (初学一级) | 2016-12-30 20:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册