掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5401|回复: 19

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

[复制链接]

该用户从未签到

发表于 2013-11-24 17:50:00 | 显示全部楼层 |阅读模式
本帖最后由 hyln9 于 2013-11-24 22:55 编辑
2 \1 `3 L4 S4 n' Y: v0 U' Y; T$ _% Y9 T. v7 y
之前打算制作英文维基20131104(https://www.pdawiki.com/forum/thread-11455-1-1.html),47.2GB的xml实在是让我无语,后来在o大的指导下找见了不错的replace pioneer,但是分割处理这么大的文件依然不给力。几经周折,找见了这款鲜为人知但是功能极为强大的xml分割工具,可以分割我的47.2gb的xml。售价貌似99刀,我只是想试用一下,没想到有1gb限制,所以自编程序怒破解之,分享给大家,但是仅限私下使用哦 - w% a2 Y0 t0 l9 s0 b! p

+ p) P: j! s& Z6 M; G" R此软件为英文,但是功能确实很强大,截几张图给大家吧:
, ^) J' f0 `) w5 \: n/ t
7 X4 J) i+ [# y' S4 [! `* _# a- B. u$ C% h
" _3 r6 C% Y3 `" y$ P) m  t% T
; F9 \/ h  p' ]8 i5 g+ @

" A. ?2 M' R* m& G, W$ O( N% N$ T8 ^& y' i+ R0 I" z# I
2 f2 J9 L3 X% Y2 {5 U6 s
ps:不知道为什么i-wiki大大的引擎出了什么问题,无法转换。问题是我随便转了某个较小的外语xml成功,转换这个却失败,悲催啊,求教 所以先放出这个工具给大家带来点方便。
* D6 H; k1 M, p5 _% W6 {
* C" k& B. i5 |0 I- d3 |破解方法:先安装程序。之后把XmlSplit_Crack.exe改名为XmlSplit.exe放入程序文件夹内覆盖原文件(源文件必须备份),运行程序,随便输XXX就注册成功了,然后恢复原来的XmlSplit.exe即可。天杀的360竟然报毒!请关闭360,注册完以后就可以打开360了。
4 C) F1 g4 e/ F  }! w. g' V/ E; u' y6 N) y1 _" w" B
http://pan.baidu.com/s/1eQoIY
' ~5 f4 z7 A- z: Y密码pqw44 U$ P# {! ]. A. I

2 \& T2 N( Z. ~% ^' v9 \- R8 w2 ]; x# w

该用户从未签到

 楼主| 发表于 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 7 A3 p* i+ o- M% E0 u9 G
关于图片显示,论坛有bug,我是先把图片上传到相册(你看我https://pdawiki.com/forum/space-uid-147948.htm ...
: M/ A, m6 D* [8 u
我说是怎么回事,谢谢了!
  • 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
    ) m# ?( ]5 T" W& r可以试试superfan89的引擎,转出效果应该和aard一样,不过我没试过。

      e, J. g& ?! l2 b, h2 v8 v谢谢,我试试!不过aard是什么?

    该用户从未签到

     楼主| 发表于 2013-11-24 23:08:59 | 显示全部楼层
    本帖最后由 hyln9 于 2013-11-24 23:16 编辑 + _; E  p4 Z, z% S; G' G+ b
    hyln9 发表于 2013-11-24 23:05 ) r! J. u7 H  K) z8 W# a1 S" f
    谢谢,我试试!不过aard是什么?

    1 D! _1 R& R6 V4 h8 ^, M2 O! G  i8 `2 S4 c
    哦,aard查到了,比我现在用的好啊!我现在用fastwiki和kiwix,前者有公式制作工具不过排版一般,后这简直是完美的无图wiki,但是英文版太大了只更新到了2012年,中文有2013的,不过有mdict版的了,也就不用了。7 z) y# d( B3 @7 y% [
    6 w# e7 V; P$ j1 ~5 j* b7 e& p
    现在没有linux环境,看来得过一段时间再说了。另外期待唯吾无为老大的新引擎!

    该用户从未签到

    发表于 2013-11-25 01:37:03 | 显示全部楼层
    lz可以寫破解的程式?!' X: Z4 C6 U* v& a' ~! P) T, d
    那怎麼沒試試寫解析的引擎?!

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2013-11-25 17:20:44 | 显示全部楼层
    STFU 发表于 2013-11-25 01:37
      F) B( g6 K0 z' V6 v+ vlz可以寫破解的程式?!1 U7 f" D, B/ N4 C8 ^* ~$ p
    那怎麼沒試試寫解析的引擎?!

    7 [% p, h3 n- k! c引擎太复杂,我又没时间其实这个程序破解起来还是比较容易的,我就是把它的验证给替换了一下而已。

    该用户从未签到

     楼主| 发表于 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. '''2 E$ [1 n5 \. @/ ?' N
    2. Based on xmllarge.py+ s& c& E& ^$ C! B( ]7 [. a# [
    3. '''/ ]! v, W6 Q  U. _
    4. # from pyquery import PyQuery as pq
      9 C% M" E; o: d; Z3 ^- y; |
    5. from pathlib import Path
      ) R1 F4 l- H5 x0 y1 H  q: g# K
    6. 1 c) k0 V/ J1 ^2 t2 H) o0 w

    7. 0 f; f: ^$ i" @: i) u* a, S
    8. def xml_iter(file, tag):
      ) E, |, _* [$ u  {, O) r
    9.     '''
      : p( u: M' r1 C; h5 ^
    10.     Process huge xml files
      - C; ~# J' @2 N1 R: a& W5 z
    11.     <tag> </tag> need to be in separate lines4 u3 M3 p, ?# R2 T
    12.     # TODO: in the middle of lines
      3 a, J; F/ q' n4 Z. y
    13. . v( Y0 x: g- E$ Z" k- f, D+ k
    14.     :file: file path2 s; y( S7 Z! c, a$ V! G
    15.     :tag: element to retrieve- ~8 ]0 B5 ^( y4 v. |! \6 F/ M
    16.     '''
      . i, P2 N8 ~) U% v4 X: Y4 w! d( o
    17.     tagb1 = '<' + tag + '>'* l6 J6 B: b4 d. I% x9 T+ A1 ]4 U
    18.     tagb1 = tagb1.encode()  |3 x; R0 X4 K+ R1 V) P
    19. 5 y$ A8 r4 `1 X. V, K+ Z; p
    20. 0 B2 @) x* a3 M0 |# g$ w9 t- H4 _( Z7 ?
    21.     tagb2 = '<' + tag + ' ') V  w5 d5 F7 L' m
    22.     tagb2 = tagb2.encode()
      + c2 x" J8 ~% H5 d& i- f% d
    23. " ], g0 d5 D: X0 o4 r3 |, I
    24.     tagb3 = '</' + tag + '>'$ o6 p6 R7 ]9 D2 l
    25.     tagb3 = tagb3.encode()
      $ Z4 n, ~: D4 b' {2 {! F2 z1 s' Y
    26. % p: ^* V- H+ ]/ k3 j4 W
    27.     with open(file, 'rb') as inputfile:
        W& Y% \0 d; o3 [% Q& k$ R
    28.         append = False
      % w# G6 x3 q( W
    29.         for line in inputfile:
      ; w+ N- [: e5 d# J/ f2 j7 f. C
    30.             #~ if b'<tu>' in line or b'<tu ' in line:& h% Y( i: e5 I
    31.             if tagb1 in line:5 c1 p/ I3 W. X  w
    32.                 inputbuffer = line[line.index(tagb1):]
        ]0 B- Y" W+ g5 ]* _* b
    33.                 append = True
      7 G8 |: W6 j; h/ c9 u1 t
    34.             elif  tagb2 in line:9 Q& @1 v8 k& d3 t3 Q
    35.                 inputbuffer = line[line.index(tagb2):]' r" S/ \& W) y5 N3 _
    36.                 append = True8 p6 @: }# k- X
    37.             #~ elif b'</tu>' in line:
      0 D) A7 S7 ?, y7 v5 q( Q: @
    38.             elif tagb3 in line:/ h$ F; L; u( Q6 m+ V: C
    39.                 inputbuffer += line[:line.index(tagb3) + len(tagb3)]  f( B, V: @3 s$ [7 s- d! j; I
    40.                 append = False
      * E- y: n/ q2 R1 o% [6 G
    41.                 yield inputbuffer
      ' m+ r$ [7 a9 m2 w. n$ S( g9 `
    42.                 #~ docitem = process_buffer(inputbuffer, id_num)) Z( F1 S+ o2 }) i8 Q: C: f+ v/ V6 l
    43.                 #~ print(id_num)
      " W( n5 P, Q+ T/ w# ^
    44.                 #~ id_num += 1
      - B" k2 I- J8 k! ?
    45.                 inputbuffer = b''
      8 ^. M5 r* @! C& P: K) c, ]
    46.             elif append:! N7 z8 L! t4 V9 w+ J4 E, m/ Q/ w
    47.                 inputbuffer += line
    复制代码

    ) |1 t+ M! T* K0 x0 ^* l5 {" u
    + @, r, |2 m" _7 N& v& H这么多人找这东西?我过一阵打包发个小工具。
    ; t0 L$ H4 e  N/ Z- g
    - h# P5 F7 L8 }+ A上面的python3函数用法! k+ l6 A0 A4 ^1 w
    resu = ''
    / e1 g) D& O0 l' H- Q% xfor elm in xml_iter(filename, 'tu'):
    & b4 ^/ {# F; a" m3 m& y    resu += elm
    3 h7 Q- X7 k; z$ N3 x* i, {* m; f4 S4 ^5 A
    内存足迹极小……不管文件多大。
  • 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
    ! V  o* y# M) P; b0 n8 s2 o9 D1 N6 q6 W这么多人找这东西?我过一阵打包发个小工具。
    ( G. ~# l: j, }+ B) i; h/ p
    " W+ E  V1 j7 p- }% L3 a% w上面的python3函数用法

    ! y3 E( z8 K. e, Y) f7 _就喜欢这种一言不合自己写工具的,后面看看你的代码
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-6 19:48 , Processed in 0.024329 second(s), 22 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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