悬赏园豆:20
[已关闭问题]
关闭于 2008-06-23 12:54
大概几百兆的xml文件,通过xpath解析之后插入数据库。<br><br>用document 肯定是不可以了,直接内存爆炸了。<br>用xmlreader的话,因为涉及到xpath,所以也不可行。<br><br>不知道大家有没有什么好的办法,<br><br>目前想到的解决办法大概有以下几种,<br>1, 先拆分xml文件为n个小的xml文件,分别解析插入。<br>2, 通过dataset读取,据说这样有可能速度比较快,待测试。<br>3, 通过xslt转换,因为只需要原来xml文件的部分节点的value,所以可以想通过xslt弄出来个小的xml文件,然后在用document解析插入,只是大概的想法,不知道可行不。<br>4, 通过oracle的xml字段的支持。将xml整体读入oracle的一个字段,通过oracle解析,对于oracle目前还不太熟悉,待测试?<br><br>请教大家有没有好的办法。<br>
问题补充:
写好写啊
我直接将我要写的作为流给写进去就可以了。
但是读因为要通过一定的xpath去读,这就很郁闷了,而且xml本身的结构就比较复杂,通过xmlreader的方式还读不了。
我也在纳闷,为什么不用关系数据库存,而偏偏要用什么xml文件!客户就给这样的xml文件了,最后郁闷的还是我们程序员啊。。。
btw:
目前暂时找到了临时的解决方案,大概差不多是方案1的变种。
因为xml文件是当数据库来用的,所以根节点下的二层节点是基本相同的!
在这个前提的基础上,使用了xmltextreader 读取 深度为二的节点,然后,大概100条左右形成一个新的文件,再用xmldocment 解析,基本实现了功能。
不过这种功能还是不是很好的一种实现!!!