掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4848|回复: 19

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

[复制链接]

该用户从未签到

发表于 2013-11-24 17:50:00 | 显示全部楼层 |阅读模式
本帖最后由 hyln9 于 2013-11-24 22:55 编辑
! I* |0 j- A2 n$ Y. @- V
4 ~  S( a( t/ v( L% `之前打算制作英文维基20131104(https://www.pdawiki.com/forum/thread-11455-1-1.html),47.2GB的xml实在是让我无语,后来在o大的指导下找见了不错的replace pioneer,但是分割处理这么大的文件依然不给力。几经周折,找见了这款鲜为人知但是功能极为强大的xml分割工具,可以分割我的47.2gb的xml。售价貌似99刀,我只是想试用一下,没想到有1gb限制,所以自编程序怒破解之,分享给大家,但是仅限私下使用哦
  x0 V" Q5 [$ e6 X+ o; w
. \& w9 D; q4 G& q此软件为英文,但是功能确实很强大,截几张图给大家吧:
- S/ o( i  A7 ?- r5 N/ f" K  e) B$ D# {& ?* m8 W7 D$ R" K. u

4 }- U$ `7 ?  `! ?2 S
5 {" ?6 u, u8 m# j  x" n
$ L+ Z1 R- X* E6 k. F  z' |
; W) Q, ^- }- V% M2 }$ w
0 K: V( A0 g( H% d' E2 Q/ M5 z" v# c
4 d2 ~. w5 V5 C+ c% G% v  k' w' `ps:不知道为什么i-wiki大大的引擎出了什么问题,无法转换。问题是我随便转了某个较小的外语xml成功,转换这个却失败,悲催啊,求教 所以先放出这个工具给大家带来点方便。
9 T6 a' ]5 x$ e2 I6 A) U' ?6 U6 |5 r* T  r, l, O2 L, ^. S, E  ^4 m
破解方法:先安装程序。之后把XmlSplit_Crack.exe改名为XmlSplit.exe放入程序文件夹内覆盖原文件(源文件必须备份),运行程序,随便输XXX就注册成功了,然后恢复原来的XmlSplit.exe即可。天杀的360竟然报毒!请关闭360,注册完以后就可以打开360了。; m+ [& |2 ]9 c, m
. Y5 N' n6 l# o' }- e
http://pan.baidu.com/s/1eQoIY
: R7 H6 o; A# W0 J密码pqw4
; D8 }2 _/ \, ?- y+ P1 x# Y: P5 `# G/ E$ Q1 O8 c+ _

该用户从未签到

 楼主| 发表于 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
/ r) {6 k2 Z, H, [  x. l# K9 n3 l关于图片显示,论坛有bug,我是先把图片上传到相册(你看我https://pdawiki.com/forum/space-uid-147948.htm ...

% |1 Z3 a* O. G& H我说是怎么回事,谢谢了!
  • 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 % u, i4 W+ z8 [$ y; c
    可以试试superfan89的引擎,转出效果应该和aard一样,不过我没试过。
    1 @- r! h1 Q0 A
    谢谢,我试试!不过aard是什么?

    该用户从未签到

     楼主| 发表于 2013-11-24 23:08:59 | 显示全部楼层
    本帖最后由 hyln9 于 2013-11-24 23:16 编辑 % t$ ~# X1 L5 M5 s' Z; A
    hyln9 发表于 2013-11-24 23:05 , O2 k8 Z- f! d/ a( U7 v" X
    谢谢,我试试!不过aard是什么?

    # S) U) }; |- h! w8 e
    # r$ B- v7 J- O# F# I) n哦,aard查到了,比我现在用的好啊!我现在用fastwiki和kiwix,前者有公式制作工具不过排版一般,后这简直是完美的无图wiki,但是英文版太大了只更新到了2012年,中文有2013的,不过有mdict版的了,也就不用了。
    . Y# J3 r% J; y: p
    - X7 ]; C. B, s: P: S# X现在没有linux环境,看来得过一段时间再说了。另外期待唯吾无为老大的新引擎!

    该用户从未签到

    发表于 2013-11-25 01:37:03 | 显示全部楼层
    lz可以寫破解的程式?!
    . U" r1 f% D7 f1 K, D那怎麼沒試試寫解析的引擎?!

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2013-11-25 17:20:44 | 显示全部楼层
    STFU 发表于 2013-11-25 01:37 / S+ X, [8 `( W( G- d
    lz可以寫破解的程式?!
    # Y0 }  k( O& N% m6 |7 v" ~0 X7 N5 r, b# B那怎麼沒試試寫解析的引擎?!
    6 n' s9 ^& r" {$ u/ V
    引擎太复杂,我又没时间其实这个程序破解起来还是比较容易的,我就是把它的验证给替换了一下而已。

    该用户从未签到

     楼主| 发表于 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. '''
      , k" P# X3 k1 T: h1 P
    2. Based on xmllarge.py
      & s- _  N2 u" g$ x
    3. '''
      ! d/ J2 O  W1 {6 y9 S
    4. # from pyquery import PyQuery as pq
      % S" _( v; A% V9 `( M. s
    5. from pathlib import Path
      6 R8 F% s2 j  k$ P3 t3 v5 p
    6. $ R3 x6 S7 G! Y' e

    7. 7 m+ N8 k% H4 }! u3 Y# d& A# W: h
    8. def xml_iter(file, tag):
      1 _9 Z: Q) ~( G- t; M9 e* V' U
    9.     '''; k  d" d; T4 I  `: [0 w
    10.     Process huge xml files
      ; B1 x; s+ f5 `& ]0 ]
    11.     <tag> </tag> need to be in separate lines7 p. h, H4 \$ }: H3 [; q; Z; X
    12.     # TODO: in the middle of lines1 e  Q( q' x3 d  N/ {' B

    13. 6 k7 \5 J4 x# v  n# @1 O1 y" P# H
    14.     :file: file path# W4 |$ a% |4 Y. y" U+ j
    15.     :tag: element to retrieve
      # V- s" f0 u1 w, W/ e# F5 X' w
    16.     '''
        j& ~4 [# L! e6 n! A5 ~' J
    17.     tagb1 = '<' + tag + '>'% y& D5 I# w2 M! I% h  G0 A: T, `8 B: [
    18.     tagb1 = tagb1.encode()) {0 f6 o; K, T9 o; E4 ]' V8 j0 F
    19. - F3 L2 E, C* a' r1 t% s8 {) o. Q

    20. - l' r. ?: _. \
    21.     tagb2 = '<' + tag + ' '/ u4 p2 @: b6 @: X
    22.     tagb2 = tagb2.encode()9 \7 ~  F9 o+ E

    23. ( P5 C! B  k. {: N5 m! Z
    24.     tagb3 = '</' + tag + '>'
      8 w; X' |# w' m1 n; p6 X+ I
    25.     tagb3 = tagb3.encode(). H* n  p$ L0 J& {: C9 \5 O
    26. - c) z* {7 q8 M: }' u  o
    27.     with open(file, 'rb') as inputfile:& t; [! v, ^% M+ A
    28.         append = False
      8 w5 m3 U$ a, s! Q7 u0 Y4 R
    29.         for line in inputfile:2 ^4 O5 o4 J: T3 ~& B, o/ B
    30.             #~ if b'<tu>' in line or b'<tu ' in line:
      - H+ J  F6 W' q# K, W. S5 w
    31.             if tagb1 in line:
      & w4 f/ }! Y% C: v
    32.                 inputbuffer = line[line.index(tagb1):]
      7 x( t) Q" R  T2 v& W- J" q' Z* o
    33.                 append = True' p6 I: z, \1 q) k5 ], F/ H. R
    34.             elif  tagb2 in line:
      * j& s5 [3 |! k  k6 I
    35.                 inputbuffer = line[line.index(tagb2):]9 G. i& }: a% ~. }, \
    36.                 append = True  c; `+ `" y0 v  `  R
    37.             #~ elif b'</tu>' in line:3 h: Q) f. n( _2 E
    38.             elif tagb3 in line:
      . t2 F# A% R; T4 c: I) y
    39.                 inputbuffer += line[:line.index(tagb3) + len(tagb3)]
      ( u6 c1 B* I& k" |, G
    40.                 append = False0 w/ z1 a( ?; u! f1 @8 e8 K, ?0 _
    41.                 yield inputbuffer! q2 R; a4 E9 I  W7 z1 N
    42.                 #~ docitem = process_buffer(inputbuffer, id_num)
      9 @7 s! p3 U5 y: T  ]+ q) ^, D8 F/ p
    43.                 #~ print(id_num)
      , c: V9 }. h6 u4 P# m; M
    44.                 #~ id_num += 1& U$ F8 y  a8 ]- o* _7 w
    45.                 inputbuffer = b''
      ( l/ X* `) j/ q, P* u
    46.             elif append:  W# V( P5 N3 J, W, I. h: g+ Z
    47.                 inputbuffer += line
    复制代码

    9 e  o/ j+ ~' B6 k
    + S2 T+ ?* W/ f+ Y这么多人找这东西?我过一阵打包发个小工具。
    9 M# X% p( S3 R2 z. s
    , e1 M& h' G, B5 x5 _0 t( F上面的python3函数用法
      Y7 U5 g: x$ E% D, jresu = ''
    3 `0 u( V1 X8 e' A+ nfor elm in xml_iter(filename, 'tu'):  C+ O; b* k: l
        resu += elm
    1 [* D* w- ]6 Z; p0 L; V6 E
    / n1 N( q' F$ W: W9 j7 H内存足迹极小……不管文件多大。
  • 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
    , I% m3 o6 a+ S0 _$ r8 x这么多人找这东西?我过一阵打包发个小工具。! [, M! L* x; y: U- L

    3 J& J* Q  a& k( Q" @上面的python3函数用法
    ( o) B; d/ ]  R4 }& O
    就喜欢这种一言不合自己写工具的,后面看看你的代码
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-15 20:57 , Processed in 0.054396 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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