掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4830|回复: 19

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

[复制链接]

该用户从未签到

发表于 2013-11-24 17:50:00 | 显示全部楼层 |阅读模式
本帖最后由 hyln9 于 2013-11-24 22:55 编辑 : B8 [6 j# t3 Z2 q. c( j6 q

# m6 I' k0 Q6 _2 l! j5 ~- d- ^之前打算制作英文维基20131104(https://www.pdawiki.com/forum/thread-11455-1-1.html),47.2GB的xml实在是让我无语,后来在o大的指导下找见了不错的replace pioneer,但是分割处理这么大的文件依然不给力。几经周折,找见了这款鲜为人知但是功能极为强大的xml分割工具,可以分割我的47.2gb的xml。售价貌似99刀,我只是想试用一下,没想到有1gb限制,所以自编程序怒破解之,分享给大家,但是仅限私下使用哦
. v5 l& q& r+ H' b) {- k, U
* n+ P% d/ @% r, O$ t% K- v此软件为英文,但是功能确实很强大,截几张图给大家吧:% C/ y' z2 W% C. K5 H1 Y. t

, r; C: s( u5 }' @0 Y1 Q8 ^2 f0 V( p- m: O7 H, T

0 d  C6 B  N  p1 p- C$ M! T* e' x" {
) @! S) z$ r3 O& ]
6 s/ e9 B7 X5 v7 R

4 \. G% L* V: ~; @* Eps:不知道为什么i-wiki大大的引擎出了什么问题,无法转换。问题是我随便转了某个较小的外语xml成功,转换这个却失败,悲催啊,求教 所以先放出这个工具给大家带来点方便。" x, t$ R1 q9 l% {; t

% k9 v- Q" u3 D) s# z8 v; u破解方法:先安装程序。之后把XmlSplit_Crack.exe改名为XmlSplit.exe放入程序文件夹内覆盖原文件(源文件必须备份),运行程序,随便输XXX就注册成功了,然后恢复原来的XmlSplit.exe即可。天杀的360竟然报毒!请关闭360,注册完以后就可以打开360了。3 T& i0 x( R! k0 O% {

& c; L8 ~2 {$ ~' _, l' x$ qhttp://pan.baidu.com/s/1eQoIY9 f2 X) ^7 m/ U& {7 [/ ?
密码pqw4
9 z$ S# N1 E: Q& O
2 Q5 b! Q, y' f$ `- N6 `

该用户从未签到

 楼主| 发表于 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
  a3 ~/ Y( P2 ~9 E+ X# b0 `0 j关于图片显示,论坛有bug,我是先把图片上传到相册(你看我https://pdawiki.com/forum/space-uid-147948.htm ...
: K( m4 j% G: Y; b2 `& ~7 b
我说是怎么回事,谢谢了!
  • 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
    4 h; z' Y$ H$ n% ^可以试试superfan89的引擎,转出效果应该和aard一样,不过我没试过。
    + G4 F7 w, s1 k0 K) |
    谢谢,我试试!不过aard是什么?

    该用户从未签到

     楼主| 发表于 2013-11-24 23:08:59 | 显示全部楼层
    本帖最后由 hyln9 于 2013-11-24 23:16 编辑
    3 S7 B. u6 m" A$ G9 o2 [) w
    hyln9 发表于 2013-11-24 23:05 + ~% n& l& \1 T  {
    谢谢,我试试!不过aard是什么?

    # _% N- Y; N6 _$ ^0 i0 o6 e1 i7 p' O1 s& s2 ~
    哦,aard查到了,比我现在用的好啊!我现在用fastwiki和kiwix,前者有公式制作工具不过排版一般,后这简直是完美的无图wiki,但是英文版太大了只更新到了2012年,中文有2013的,不过有mdict版的了,也就不用了。
    - d$ A$ v# v  O" b# H# y
    * t. \+ P1 ~# S2 U: _现在没有linux环境,看来得过一段时间再说了。另外期待唯吾无为老大的新引擎!

    该用户从未签到

    发表于 2013-11-25 01:37:03 | 显示全部楼层
    lz可以寫破解的程式?!: ^, P# M$ y1 U0 Z2 m( y2 O+ j
    那怎麼沒試試寫解析的引擎?!

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2013-11-25 17:20:44 | 显示全部楼层
    STFU 发表于 2013-11-25 01:37
    7 [( L5 _8 z4 [4 ?& \lz可以寫破解的程式?!
    . G' c/ a7 w" |; n# h+ w; N那怎麼沒試試寫解析的引擎?!

    4 D# Y1 z1 n% ?5 q+ j/ L3 k引擎太复杂,我又没时间其实这个程序破解起来还是比较容易的,我就是把它的验证给替换了一下而已。

    该用户从未签到

     楼主| 发表于 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. '''9 ]5 O% B* j  d! ^% x3 V9 y
    2. Based on xmllarge.py5 h7 e) ~6 G. L% K
    3. '''
      5 i* J, j. }+ I. Q
    4. # from pyquery import PyQuery as pq$ w6 m4 K' W9 ^: |7 S4 \. R
    5. from pathlib import Path2 ^1 Y' L1 m1 t# l; ~7 W

    6. # W  w+ Q2 h. S

    7. , E* U! s5 k% R; f4 T- k
    8. def xml_iter(file, tag):% n9 f- c: J! J; w; S4 t, t
    9.     '''
      9 c1 Y  J' n  f4 b2 d/ \+ a
    10.     Process huge xml files1 M; t" K( L, b( s! C* ]0 v2 Y
    11.     <tag> </tag> need to be in separate lines: p( n9 F; s. J" I8 X, P: q
    12.     # TODO: in the middle of lines
      - m; r  \; D- o1 g5 w/ s

    13. # O- _( ?2 |" Q0 v: e4 H
    14.     :file: file path$ Q# h4 t# ~) l# C/ Q
    15.     :tag: element to retrieve  O9 y0 [3 ~. i% z
    16.     '''+ R$ ]; ~* U$ T5 F4 k
    17.     tagb1 = '<' + tag + '>'& s4 y7 G) j% k- J& X. [" h
    18.     tagb1 = tagb1.encode()
        e& h. r" l* O4 N8 \) l

    19. ) q) m/ M6 W3 P" L9 _
    20. # c$ Z- r1 O5 e- n8 o
    21.     tagb2 = '<' + tag + ' '7 C5 E9 j3 Y( n- j; w
    22.     tagb2 = tagb2.encode()& R* {1 v5 A; [
    23. 1 k# f2 W  V$ O; V/ _' J6 F
    24.     tagb3 = '</' + tag + '>'
      ) U$ g! L" ^" d, {" r- t3 w
    25.     tagb3 = tagb3.encode()
      * J9 }4 F  \1 t/ J. }; q
    26. ' Y# b: g# r3 R9 m( _- Z
    27.     with open(file, 'rb') as inputfile:
      5 e4 n9 D- s& c* u9 p1 O
    28.         append = False% f6 t# G+ |" Q! [! H
    29.         for line in inputfile:5 t1 f4 D, d* Z# a
    30.             #~ if b'<tu>' in line or b'<tu ' in line:# W: j+ Y  I/ O7 q8 k
    31.             if tagb1 in line:9 Z; U8 ?" l; v' e
    32.                 inputbuffer = line[line.index(tagb1):]' _5 y2 m" l$ x1 T) P% X# c
    33.                 append = True. Z( E1 g% q- I8 f, C3 g, B
    34.             elif  tagb2 in line:
      : p* g" A$ E% g, h8 |, G  f
    35.                 inputbuffer = line[line.index(tagb2):]
      7 [; m0 b1 y! O; u6 k) ^
    36.                 append = True
      7 W. P, E+ c" G, _4 k% N3 `* ^
    37.             #~ elif b'</tu>' in line:
      5 T4 u5 U$ f8 B9 O- [
    38.             elif tagb3 in line:) i% }# S7 d. f/ l/ I  ]! i
    39.                 inputbuffer += line[:line.index(tagb3) + len(tagb3)]
      9 a2 ~6 O" Z" D/ M) R& u
    40.                 append = False+ J: J. F0 p) h7 U0 {
    41.                 yield inputbuffer  X8 ?$ g0 `- w- g! o; n' a
    42.                 #~ docitem = process_buffer(inputbuffer, id_num)
      - a3 L( j* ]) y' ^
    43.                 #~ print(id_num); w% B4 M3 Y" W# N  {* ^9 j) p
    44.                 #~ id_num += 1  Y' }3 V! F9 ^+ p+ b2 F
    45.                 inputbuffer = b''
      9 }9 H4 c# C8 l( z6 J' e; q
    46.             elif append:7 J' U% n# h' M: E( ]. b' J
    47.                 inputbuffer += line
    复制代码
    8 A% H4 F6 a! m7 [) o1 q7 Q/ H, i8 R

    8 B+ {% a( q8 f$ x- L这么多人找这东西?我过一阵打包发个小工具。
    ( _0 v; o, n5 P, L' U/ K0 y: @# S% k0 o
    上面的python3函数用法9 D) D% D" I6 q  n, N
    resu = ''
    ( h$ h6 y, X& w& Ifor elm in xml_iter(filename, 'tu'):- p. m4 X, @" ?9 k" j
        resu += elm
    % k2 l  Z, v$ G% [  {" V' T
    / S% ?( W0 K7 N5 y) b内存足迹极小……不管文件多大。
  • 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:27
    # n2 T) d) o/ r这么多人找这东西?我过一阵打包发个小工具。/ Q* J5 W* ?4 M7 }- c5 N' w

    ) t& T! ~8 [  ~) K. c4 Z; W: B上面的python3函数用法

    + {2 i3 [+ i( X+ b: a/ Z" q就喜欢这种一言不合自己写工具的,后面看看你的代码
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-25 22:50 , Processed in 0.056138 second(s), 8 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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