掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4861|回复: 19

[工具] 分割xml/html等文件必备:xmlsplit

[复制链接]

该用户从未签到

发表于 2013-11-24 17:50:00 | 显示全部楼层 |阅读模式
本帖最后由 hyln9 于 2013-11-24 22:55 编辑
3 u) s0 |: a, |) W0 y( s. ]& K+ d( j, Z, d9 q. B
之前打算制作英文维基20131104(https://www.pdawiki.com/forum/thread-11455-1-1.html),47.2GB的xml实在是让我无语,后来在o大的指导下找见了不错的replace pioneer,但是分割处理这么大的文件依然不给力。几经周折,找见了这款鲜为人知但是功能极为强大的xml分割工具,可以分割我的47.2gb的xml。售价貌似99刀,我只是想试用一下,没想到有1gb限制,所以自编程序怒破解之,分享给大家,但是仅限私下使用哦
. c& z9 r% f: E3 q) a- Y8 h( z& |
2 t: K* P* s. t. {0 O0 v; Q7 e: V此软件为英文,但是功能确实很强大,截几张图给大家吧:) I0 W( a1 h- [/ [
2 y* T0 f. K6 o7 X. V
. D1 `/ _9 ?) _. p  R
$ G/ X- u& u% u, B$ k7 M  }% i
) R: l: ~" G/ Y3 s: Q, {
% k) J5 q! l& b; X/ C: F  y

. `2 \$ d$ V5 P1 U6 Q4 H) c% y2 n: Y6 E7 l1 A" q/ J- n
ps:不知道为什么i-wiki大大的引擎出了什么问题,无法转换。问题是我随便转了某个较小的外语xml成功,转换这个却失败,悲催啊,求教 所以先放出这个工具给大家带来点方便。# u- d: Q- Y" r+ G, Z
. X( w: x$ \5 C& E1 ?
破解方法:先安装程序。之后把XmlSplit_Crack.exe改名为XmlSplit.exe放入程序文件夹内覆盖原文件(源文件必须备份),运行程序,随便输XXX就注册成功了,然后恢复原来的XmlSplit.exe即可。天杀的360竟然报毒!请关闭360,注册完以后就可以打开360了。
0 ^7 @- z- D6 J' |/ ]: {& Z$ O) T$ {5 v( X7 ?- l" `
http://pan.baidu.com/s/1eQoIY4 n" k/ [/ I9 R: b/ @3 _. J( d3 p
密码pqw4' b( R9 _2 A) C, T4 q6 }4 u( _

3 |  x5 c7 e3 O; @# Z7 n3 b, a

该用户从未签到

 楼主| 发表于 2013-11-24 22:45:37 | 显示全部楼层
此楼备用

该用户从未签到

发表于 2013-11-24 22:50:06 | 显示全部楼层
关于图片显示,论坛有bug,我是先把图片上传到相册(你看我https://pdawiki.com/forum/space-uid-147948.html相册里都100+张图了),再从相册中选择图片插入,注意验证回答上方“本地化远程图片”前的复选框不要勾选!!!这样图片就能大大地显示出来了。{:5_227:}

该用户从未签到

 楼主| 发表于 2013-11-24 22:51:41 | 显示全部楼层
Oeasy 发表于 2013-11-24 22:50 $ G+ ?: M$ @9 n$ w
关于图片显示,论坛有bug,我是先把图片上传到相册(你看我https://pdawiki.com/forum/space-uid-147948.htm ...
% a; j" x; e( t' n* H# ]2 x
我说是怎么回事,谢谢了!
  • TA的每日心情
    难过
    2018-3-28 11:32
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2013-11-24 22:55:32 | 显示全部楼层
    可以试试superfan89的引擎,转出效果应该和aard一样,不过我没试过。

    该用户从未签到

     楼主| 发表于 2013-11-24 23:05:42 | 显示全部楼层
    yisdict 发表于 2013-11-24 22:55 7 S  I! R: L( o: p
    可以试试superfan89的引擎,转出效果应该和aard一样,不过我没试过。

    ) C; u7 l7 K' Z9 Z) G5 G谢谢,我试试!不过aard是什么?

    该用户从未签到

     楼主| 发表于 2013-11-24 23:08:59 | 显示全部楼层
    本帖最后由 hyln9 于 2013-11-24 23:16 编辑 ) [7 J! d, G9 W! A+ x9 x2 E
    hyln9 发表于 2013-11-24 23:05 2 U9 @5 P5 O- C  x8 ?
    谢谢,我试试!不过aard是什么?

    # F7 {6 e; I- y3 @8 @: n1 x+ o8 V3 s+ c; w: ?
    哦,aard查到了,比我现在用的好啊!我现在用fastwiki和kiwix,前者有公式制作工具不过排版一般,后这简直是完美的无图wiki,但是英文版太大了只更新到了2012年,中文有2013的,不过有mdict版的了,也就不用了。
    % y% O# z* a4 L6 u9 }8 d, F2 l$ F/ L/ }; I
    现在没有linux环境,看来得过一段时间再说了。另外期待唯吾无为老大的新引擎!

    该用户从未签到

    发表于 2013-11-25 01:37:03 | 显示全部楼层
    lz可以寫破解的程式?!" S" m. Y8 J! ~  X" `
    那怎麼沒試試寫解析的引擎?!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    该用户从未签到

     楼主| 发表于 2013-11-25 17:20:44 | 显示全部楼层
    STFU 发表于 2013-11-25 01:37 % o( d% r1 e- A8 [5 j0 p
    lz可以寫破解的程式?!! b+ L0 `% a7 _" d5 w+ Y* t, _
    那怎麼沒試試寫解析的引擎?!

    7 v7 C( B$ ~8 x, l引擎太复杂,我又没时间其实这个程序破解起来还是比较容易的,我就是把它的验证给替换了一下而已。

    该用户从未签到

     楼主| 发表于 2013-12-3 18:52:58 | 显示全部楼层
    图片算是显示完整了
  • TA的每日心情
    开心
    2020-3-8 09:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2013-12-3 19:28:37 | 显示全部楼层
    凡是能够编写程序,我都100分的崇拜。
  • TA的每日心情
    无聊
    2018-8-12 17:26
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2014-12-29 13:56:42 | 显示全部楼层
    能不能再发分享一次,谢谢
  • TA的每日心情
    无聊
    2018-8-12 17:26
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2014-12-31 13:10:51 | 显示全部楼层
    楼主能不能把那XMLSPLIT再给我分享一份,谢谢

    该用户从未签到

    发表于 2018-5-14 00:42:57 | 显示全部楼层
    求分享xmlsplit,打不开了。谢谢!
  • TA的每日心情
    奋斗
    2018-5-18 05:02
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2018-5-14 06:21:32 | 显示全部楼层
    请问楼主@hyln9能否重新分享一下你的百度盘链接?
  • TA的每日心情

    2024-3-13 15:54
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    发表于 2018-11-16 20:03:31 | 显示全部楼层
    网盘链接已失效,能否再分享一次?
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    发表于 2018-11-16 21:27:49 | 显示全部楼层
    1. '''
      $ F3 _6 T- J& o7 m
    2. Based on xmllarge.py) ]6 K# {  P+ @5 j7 ?9 g. H! Z
    3. '''
      2 v6 Q5 Z$ E& ]2 w% w% w
    4. # from pyquery import PyQuery as pq$ T: `- }) ^+ N  F0 \
    5. from pathlib import Path
      2 K& Z+ {6 D- f7 O
    6. ! \% _/ i# y, f$ w/ o3 S+ T
    7. & @- ?! U; n* x6 n0 u" T
    8. def xml_iter(file, tag):+ L( v. v+ o0 K& v  s' f
    9.     '''7 D: D- U3 {) _) }  J( \" P
    10.     Process huge xml files% t  Q+ {9 N, ~, L8 G
    11.     <tag> </tag> need to be in separate lines
      : h# k7 e9 \' w% L! f" K
    12.     # TODO: in the middle of lines
      8 F  i. B) m' y

    13. " I+ G( R9 B" S- G% X
    14.     :file: file path3 d% h/ I6 A5 V/ K: T. y, F
    15.     :tag: element to retrieve1 n- I7 h8 V0 m- E, B
    16.     '''2 t( S* M* u) y# W7 S2 M* D: t
    17.     tagb1 = '<' + tag + '>'; k+ ?8 }0 V% ^
    18.     tagb1 = tagb1.encode()
      7 k: x* ]9 x& {6 \  D

    19. 1 ^* j; a3 f$ J# k
    20. 7 Y  C& T, u% k$ N/ Y9 @
    21.     tagb2 = '<' + tag + ' '/ B$ p% F  _2 q0 ^: x; @; c
    22.     tagb2 = tagb2.encode()
      5 ]$ F7 I- h6 d! G
    23. & H' v' A6 ?1 _9 I# F
    24.     tagb3 = '</' + tag + '>'
      8 j. b9 P  [- [9 }0 z
    25.     tagb3 = tagb3.encode()
      0 \3 {* m1 q$ O& l* q

    26. - J5 L% Z6 R; t& ~, l) Y5 Y
    27.     with open(file, 'rb') as inputfile:
      ; A" B; S* x$ e. M* ~5 n4 {9 b! K3 [
    28.         append = False* b+ Q# a4 {4 ?3 e: v6 v; F
    29.         for line in inputfile:
      . m( X( U; ~5 e4 J( H# b
    30.             #~ if b'<tu>' in line or b'<tu ' in line:% p) V) p/ Z  a- h  z8 U
    31.             if tagb1 in line:* T* {  U$ X0 {# {
    32.                 inputbuffer = line[line.index(tagb1):]2 ~$ I8 q- L. z0 {/ j( c- x
    33.                 append = True3 Z4 t' x. T- b& @/ R( Y
    34.             elif  tagb2 in line:. A, n2 }; ~+ b9 q
    35.                 inputbuffer = line[line.index(tagb2):]2 `9 i$ n4 G3 Z1 s9 ]
    36.                 append = True" G  y9 N) [; l: M; ~
    37.             #~ elif b'</tu>' in line:0 Z4 D9 v6 S+ `* n6 r
    38.             elif tagb3 in line:* F+ k$ F8 T6 G+ w" s! P
    39.                 inputbuffer += line[:line.index(tagb3) + len(tagb3)]. L3 o% a) u& k2 n7 l( T% U+ W; F
    40.                 append = False* I. m2 K# X& p8 x" I2 C3 H
    41.                 yield inputbuffer2 p3 L/ u1 N6 a) d+ [& N; I' S
    42.                 #~ docitem = process_buffer(inputbuffer, id_num). X. u1 D( Y! B1 P% C; _& Z2 J0 O
    43.                 #~ print(id_num)
      3 {: l/ q, \6 v
    44.                 #~ id_num += 1: a% t" v5 x. A8 |% T
    45.                 inputbuffer = b''+ a( L& E- ^- E" m' E+ d+ m" q
    46.             elif append:1 x* i& E+ \( c1 E2 g5 e7 F8 r
    47.                 inputbuffer += line
    复制代码

    8 i% R; n  r+ _6 w6 S# ~5 K& l* s7 ^+ B& t) M  H5 t( t7 @
    这么多人找这东西?我过一阵打包发个小工具。1 i' |* T/ Q: S! O1 e

    4 j- h1 K  s* H0 A上面的python3函数用法
    2 o. A, D1 _( s; ]9 l/ h/ k) Yresu = ''6 s3 h! ~1 l! A" G
    for elm in xml_iter(filename, 'tu'):
    * M: o' Y9 v7 a" a    resu += elm' a9 ?5 g, z( r6 W; f0 L
    * {3 U* L$ M# d
    内存足迹极小……不管文件多大。
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-1-19 18:47:48 | 显示全部楼层
    这个工具链接失效了,可以再分享下么
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-1-19 18:48:19 | 显示全部楼层
    mikeee 发表于 2018-11-16 21:275 {9 @6 p& S, I" \: M/ F
    这么多人找这东西?我过一阵打包发个小工具。
    % A  b, I0 i9 _3 A( N, N9 X- [$ n, T; S& N- Z
    上面的python3函数用法

    ( _/ Z6 {0 I7 I$ t就喜欢这种一言不合自己写工具的,后面看看你的代码
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-5-29 16:11 , Processed in 0.058028 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表