掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4833|回复: 19

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

[复制链接]

该用户从未签到

发表于 2013-11-24 17:50:00 | 显示全部楼层 |阅读模式
本帖最后由 hyln9 于 2013-11-24 22:55 编辑
) }. L6 P; W; |
' T' n4 G3 K* [9 s. O之前打算制作英文维基20131104(https://www.pdawiki.com/forum/thread-11455-1-1.html),47.2GB的xml实在是让我无语,后来在o大的指导下找见了不错的replace pioneer,但是分割处理这么大的文件依然不给力。几经周折,找见了这款鲜为人知但是功能极为强大的xml分割工具,可以分割我的47.2gb的xml。售价貌似99刀,我只是想试用一下,没想到有1gb限制,所以自编程序怒破解之,分享给大家,但是仅限私下使用哦 $ Q% _5 `9 {( \; X. \

1 N' i4 Z4 m1 c" d" `, D7 T此软件为英文,但是功能确实很强大,截几张图给大家吧:& v! F+ ]. p$ p, J

5 o( N# c" c7 u7 S) l+ z% O* S# w; e2 h* ~3 B& `! o
# I7 _: i1 e& k$ ]
4 F( S5 }$ @+ U
3 Y( Q7 v: v' y* t: |+ t4 J6 U
7 f2 j" f3 s0 ^; m, w
/ M. {+ p" z% H1 \5 E1 n. E" [7 X
ps:不知道为什么i-wiki大大的引擎出了什么问题,无法转换。问题是我随便转了某个较小的外语xml成功,转换这个却失败,悲催啊,求教 所以先放出这个工具给大家带来点方便。' c- u& M& d6 ^) J, m/ `' l# M
  I0 C( @  p/ [' k- X- Y
破解方法:先安装程序。之后把XmlSplit_Crack.exe改名为XmlSplit.exe放入程序文件夹内覆盖原文件(源文件必须备份),运行程序,随便输XXX就注册成功了,然后恢复原来的XmlSplit.exe即可。天杀的360竟然报毒!请关闭360,注册完以后就可以打开360了。
! ~; f/ G" b2 o$ L* E# I9 E$ h+ c8 `0 v4 T/ n6 v! q, ]4 I; }
http://pan.baidu.com/s/1eQoIY
1 l* e6 P+ d  `8 i) y5 m! [密码pqw4
  u2 ^& f$ z. |5 t4 d2 B7 S0 }  z: |% s

该用户从未签到

 楼主| 发表于 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
  |) S# F' {1 R5 l- z关于图片显示,论坛有bug,我是先把图片上传到相册(你看我https://pdawiki.com/forum/space-uid-147948.htm ...

4 `+ w! N" s* u/ y- Y我说是怎么回事,谢谢了!
  • 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 }* a' F  d' p, L6 W可以试试superfan89的引擎,转出效果应该和aard一样,不过我没试过。
      {* C; {( T0 M; V/ T
    谢谢,我试试!不过aard是什么?

    该用户从未签到

     楼主| 发表于 2013-11-24 23:08:59 | 显示全部楼层
    本帖最后由 hyln9 于 2013-11-24 23:16 编辑
    4 t& j, V( }4 S% ^1 I% e
    hyln9 发表于 2013-11-24 23:05 / E# C) b4 I& @( [& q! t, g
    谢谢,我试试!不过aard是什么?
    . W/ u! }+ G1 s, x+ q

    - U( T7 k  F4 a5 ^2 K/ k哦,aard查到了,比我现在用的好啊!我现在用fastwiki和kiwix,前者有公式制作工具不过排版一般,后这简直是完美的无图wiki,但是英文版太大了只更新到了2012年,中文有2013的,不过有mdict版的了,也就不用了。
    # H& q5 N* Z, [$ g# R* v- B3 d" V  f5 d& c( b
    现在没有linux环境,看来得过一段时间再说了。另外期待唯吾无为老大的新引擎!

    该用户从未签到

    发表于 2013-11-25 01:37:03 | 显示全部楼层
    lz可以寫破解的程式?!: d6 S+ S" d# m1 W" Z3 F+ p2 `
    那怎麼沒試試寫解析的引擎?!

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2013-11-25 17:20:44 | 显示全部楼层
    STFU 发表于 2013-11-25 01:37
    ! T0 D3 t* Y$ A' v( [5 Ulz可以寫破解的程式?!
    ' @6 c1 g/ R* `3 q! S* U那怎麼沒試試寫解析的引擎?!

    # x8 z  y# ^8 ?2 c5 z# G' d引擎太复杂,我又没时间其实这个程序破解起来还是比较容易的,我就是把它的验证给替换了一下而已。

    该用户从未签到

     楼主| 发表于 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 C1 ]7 R1 g+ `
    2. Based on xmllarge.py! x. l1 G/ T9 w0 A1 P+ u# ^
    3. '''
      4 o. u3 q  _$ M/ z2 i% U
    4. # from pyquery import PyQuery as pq
      ' l- G; ]8 s& |" S+ n1 A, ]
    5. from pathlib import Path
      1 |- D: C& L, h# w3 }4 U
    6. ' V; q3 o8 Q5 N2 }0 \; ?6 P! J

    7. ( f- J- k! K6 [) n& G
    8. def xml_iter(file, tag):
      % F- k1 @+ m) y* g5 R7 n
    9.     '''
      , H. |1 W6 R9 p- ~( K
    10.     Process huge xml files
      6 C# b8 C. J. j# X5 N2 S
    11.     <tag> </tag> need to be in separate lines
      " B. L" l: F- i$ y; D! n6 }; B
    12.     # TODO: in the middle of lines
      2 }) I. f. e, @$ S# o

    13. ' b: d9 |' _3 Q8 }) k, e
    14.     :file: file path8 A, v* X8 N# z- U9 }& c6 c. X
    15.     :tag: element to retrieve
      , w& v' R8 A% v1 l6 i$ E
    16.     '''
      ; s$ z$ H$ W2 g9 z
    17.     tagb1 = '<' + tag + '>'; C# N9 c7 [5 V2 `
    18.     tagb1 = tagb1.encode()
      - @8 ^6 _: P7 A+ E6 h
    19. # m6 [( ^5 n/ R0 }! I4 J9 S

    20. . E# y' c) q, m5 `+ W- N1 {
    21.     tagb2 = '<' + tag + ' '
      # m( L% Z$ Q4 r- b4 O% s5 r: h
    22.     tagb2 = tagb2.encode()
      ; r/ _- b" _: b* [  Y# Z4 [5 `3 u6 E' ^
    23. 9 G% p6 q; L, P: ?8 k7 e
    24.     tagb3 = '</' + tag + '>'
      / z% H9 ]& p  ?2 J# [
    25.     tagb3 = tagb3.encode()5 I  B5 i8 C1 V: @- _1 X' U
    26. ! F) L- t. m( q  q3 Y  |4 |: N9 w
    27.     with open(file, 'rb') as inputfile:5 j; ]9 P9 i0 {. i. |( |. X7 C
    28.         append = False
      5 m7 z; ?* `; r; ^$ L# q  |& `
    29.         for line in inputfile:( G4 F# W! A+ i7 [/ I+ Z
    30.             #~ if b'<tu>' in line or b'<tu ' in line:
      4 ]* f1 D7 j( b1 D3 o9 t
    31.             if tagb1 in line:
      4 ?  v: S5 E8 K1 Q5 Y0 ]% A; x/ J
    32.                 inputbuffer = line[line.index(tagb1):]
      , L0 g( |4 e  r2 z- \0 P' X
    33.                 append = True) i* l/ T% p6 `, s/ [
    34.             elif  tagb2 in line:
      . G9 b2 ~% J, H% h: `, U
    35.                 inputbuffer = line[line.index(tagb2):]
      : H, Z% Q9 A1 j8 q- H
    36.                 append = True/ O( c! T% N+ H. e  R$ \
    37.             #~ elif b'</tu>' in line:
      6 L+ H" W7 s! \, m2 J+ Y5 ~! S
    38.             elif tagb3 in line:0 w0 o' o$ h" @& y/ h
    39.                 inputbuffer += line[:line.index(tagb3) + len(tagb3)], n$ ^5 x5 n" T% U4 s
    40.                 append = False5 Q8 H; z1 a& v/ J
    41.                 yield inputbuffer8 N3 i' v+ ^6 p; C' _
    42.                 #~ docitem = process_buffer(inputbuffer, id_num)
      / y! _+ S/ o1 p" e7 h7 j
    43.                 #~ print(id_num)) k6 q  `5 C7 _; i1 |
    44.                 #~ id_num += 1& t0 O# V- g: E+ B9 ]; ]
    45.                 inputbuffer = b''
      " h3 ]5 Q$ _+ _; ^
    46.             elif append:- j/ a. I8 |% |
    47.                 inputbuffer += line
    复制代码
    ; |" c+ b9 M. x& ]) V$ }8 d

    . F5 H, o1 S6 C$ f这么多人找这东西?我过一阵打包发个小工具。1 \# c2 N4 |1 y! H; ]' `
    ) G& p1 ~% c6 Y
    上面的python3函数用法0 V+ O) Z% b/ T
    resu = ''
    8 I5 f6 g. z) \' b2 G6 l' Hfor elm in xml_iter(filename, 'tu'):% |2 j' a1 z! v- c
        resu += elm
    5 [, E  M, [& e6 S" q
      t- }( N# o8 s7 ?内存足迹极小……不管文件多大。
  • 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:279 S# a5 ^6 {2 ~; l4 Q" d. w& v
    这么多人找这东西?我过一阵打包发个小工具。, M0 O+ C2 a$ t9 ^. r2 H8 g# P+ Z
    ' t- \3 n! ~" k9 c" \4 G6 w3 _
    上面的python3函数用法

    ( ?% Q" F! \  f# t5 K  j' }, c( [就喜欢这种一言不合自己写工具的,后面看看你的代码
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-29 10:20 , Processed in 0.159314 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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