当前位置: 代码迷 >> PB >> 请大神指点.pb导入xml的有关问题 关于列的顺序有关问题
  详细解决方案

请大神指点.pb导入xml的有关问题 关于列的顺序有关问题

热度:145   发布时间:2016-04-29 05:30:12.0
请大神指点.pb导入xml的问题 关于列的顺序问题
因为我的xml数据是通过泛型转xml生成的.如user类生成如下:
<user>
<username>xx</username>
<age>12</age>
....
</user>
因为xml是由代码自动转换类成xml生成的,所以,<username>与<age>结点的先后就不确定了.

而pb里面假设我有一个datawindow 是用来接收数据的.xml如上;
这样一来,如果接收到的xml是
<user>
<age>12</age>
<username>xx</username>
....
</user>
那就会出现绑定错误,或者age出现在第一行,username出现在第二行?
有什么方法可以忽略xml结点顺序来绑定嘛?
------解决方案--------------------
数据窗口的xml模板是这样的

所以要么要求你的源数据要顺序固定,要么自已写代码解析XML (可以用pbdom或msxml)

------解决方案--------------------
右键数据窗口对象,edit source 最方便

引用:
Quote: 引用:

数据窗口的xml模板是这样的

所以要么要求你的源数据要顺序固定,要么自已写代码解析XML (可以用pbdom或msxml)

因为是新手,所以pbdom和msxml都不熟....再努力学习.
另外:DataWindow 中Export/Import Template中的结点怎么调整顺序?我怎么调整不了?

------解决方案--------------------
我不知道你是怎么试的,我以前用过,刚才又试了下,PB会自动识别节点名称的,但是对于和原先列顺序不一样的XML不能完美导入,行会发生错位,错开后有空的单元格,但是列是对的,单独列里数据的顺序也没有问题。

比如 完美导入后应该是
1    2      3
11  22   33

但是不完美导入后,可能是这个样子
              3 
1    2    33 
11  22   

你完全可以直接导入,导入以后,循环取每列整列的值,去掉空值,再重新赋值给对应的列就可以了。也就三五条语句的事情。
记住,导入后先不能排序,分组等等,否则顺序会乱掉的。等所有的列重新赋过值之后才可以进行其他的操作。

PS:我怀疑你导入报错是因为没有指定 导入模板吧?你要在数据窗口对象的data import里或代码里指定导入模板名,不要用默认的那个未命名的空值。还有,其实模板里的节点顺序也是可以调整的,你自己多动手试下吧,单击节点,右键,模板里边还可以设定分组,组内合计等等。一两句话说不清楚,你自己多试吧

  相关解决方案