[问题] 大型xml没有根与搜寻如何处理?(已解决)

楼主: st1009 (前端攻城师)   2018-05-13 23:44:02
各位大大晚安,不才想请教两个问题<(_ _)>
我目前希望可以处理一份很巨大的xml,但是我手上的xml档没有树根!
经过测试我发现会报错QAQQQ
我看到别人的解法好像是先把档案开启来,然后写入树根?
但是我目前需要动态迭代,因为档案很大,无法一次存入内存,
我试着引用查到的程式码,我的程式目前长如下网址
http://codepad.org/bPqMyuly
感觉好像不适合用那种open然后加入树根的方式,不知道版上大大有好建议嘛?
譬如怎么跟着迭代动态写入树根?
我的XML格式如下:
<doc id="13" url="https:XXX" title="XX">
content 1
</doc>
<doc id="15" url="https:XXX" title="XX">
content 2
</doc>
另外想问我希望搜寻文档中xml的content,然后如果我的keyword有出现在content中,
就回报我content的id,让我知道哪些content中有出现我的keyword,
我操作如下
先把xml分析出id和content之后,存入MySQL数据库,
再借由SELECT id FROM table WHERE content = "%keyword%"
找出哪些文章出现我的关键字
这样子的操作会有问题嘛?譬如MySQL会搜很慢之类的?
如果有问题,我怎样做比较好?
p.s我的关键字都是中文
作者: ThxThx (洗洗睡)   2018-05-14 01:43:00
一行一行读读到close tag 就把累积的内容拿去parse
作者: s860134 (s860134)   2018-05-14 12:58:00
你的问题应该是在档案太大,写入 sql 很好阿后来网络上有人提示 etree.HTML 就可已爬没 root 的https://stackoverflow.com/a/23891862你直接当作 html 爬应该是没什么差
作者: subi (细雨绵绵细雨)   2018-05-14 20:35:00
http://codepad.org/qw3YwJsx 不知道这样字是不是你要的我觉得你应该搭配 generator 来写,可以避免内存问题

Links booklink

Contact Us: admin [ a t ] ucptt.com