掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4842|回复: 19

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

[复制链接]

该用户从未签到

发表于 2013-11-24 17:50:00 | 显示全部楼层 |阅读模式
本帖最后由 hyln9 于 2013-11-24 22:55 编辑
3 y3 d1 g4 i( u
4 n. k% e# t6 l3 ?% k之前打算制作英文维基20131104(https://www.pdawiki.com/forum/thread-11455-1-1.html),47.2GB的xml实在是让我无语,后来在o大的指导下找见了不错的replace pioneer,但是分割处理这么大的文件依然不给力。几经周折,找见了这款鲜为人知但是功能极为强大的xml分割工具,可以分割我的47.2gb的xml。售价貌似99刀,我只是想试用一下,没想到有1gb限制,所以自编程序怒破解之,分享给大家,但是仅限私下使用哦
( `/ E3 P2 P4 y- y' Y! _& c0 ^- ?
, W" P, c$ R& R9 g5 m9 I# p4 T此软件为英文,但是功能确实很强大,截几张图给大家吧:( m5 f8 x$ U' J6 P) z

2 P$ n6 B! N/ J) }0 r# B9 Z# ]* S# v' z3 Q4 K2 k: _5 P5 q& ]

7 m1 |+ R9 T" v0 Y' \: B* S$ `5 }% Z, Y% P' J* S5 v, D

" v4 o" P; P* ]$ i
5 U( L. b1 g, I6 {( f5 o
! h: f) \) u: j+ j  Fps:不知道为什么i-wiki大大的引擎出了什么问题,无法转换。问题是我随便转了某个较小的外语xml成功,转换这个却失败,悲催啊,求教 所以先放出这个工具给大家带来点方便。0 U' @5 [7 w: n( c
( ~- u% d6 e3 M! p( ]
破解方法:先安装程序。之后把XmlSplit_Crack.exe改名为XmlSplit.exe放入程序文件夹内覆盖原文件(源文件必须备份),运行程序,随便输XXX就注册成功了,然后恢复原来的XmlSplit.exe即可。天杀的360竟然报毒!请关闭360,注册完以后就可以打开360了。- N- [* t# K8 I5 r
+ c1 n! \8 j- s6 M
http://pan.baidu.com/s/1eQoIY! Z  ^7 j8 N8 M, Z
密码pqw4
# S% x6 b0 Q5 J1 ^( f% N' W& g3 d

该用户从未签到

 楼主| 发表于 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 : Z! @: Y+ e" w9 E4 |7 G5 {
关于图片显示,论坛有bug,我是先把图片上传到相册(你看我https://pdawiki.com/forum/space-uid-147948.htm ...

, ]# s9 u' z/ M6 x+ f. M我说是怎么回事,谢谢了!
  • 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 ' M7 d; A' g3 J# h  L' k
    可以试试superfan89的引擎,转出效果应该和aard一样,不过我没试过。
    ; ^. M/ H5 x1 {+ K! I2 a3 g! L1 A
    谢谢,我试试!不过aard是什么?

    该用户从未签到

     楼主| 发表于 2013-11-24 23:08:59 | 显示全部楼层
    本帖最后由 hyln9 于 2013-11-24 23:16 编辑 ! {  m% z! }- H
    hyln9 发表于 2013-11-24 23:05 % W' t& O5 m8 M" I9 D4 E8 U1 {9 b
    谢谢,我试试!不过aard是什么?
    : X( t5 M. w  J+ c# I9 x2 P2 n

    & g/ ]8 R' T* k哦,aard查到了,比我现在用的好啊!我现在用fastwiki和kiwix,前者有公式制作工具不过排版一般,后这简直是完美的无图wiki,但是英文版太大了只更新到了2012年,中文有2013的,不过有mdict版的了,也就不用了。
    # A  X& t- ?. ?4 T" p0 ~- E+ B: M2 E" B3 k! i' c
    现在没有linux环境,看来得过一段时间再说了。另外期待唯吾无为老大的新引擎!

    该用户从未签到

    发表于 2013-11-25 01:37:03 | 显示全部楼层
    lz可以寫破解的程式?!
    : [$ y1 `5 {& x: W' ?# W那怎麼沒試試寫解析的引擎?!

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2013-11-25 17:20:44 | 显示全部楼层
    STFU 发表于 2013-11-25 01:37
    + W: g6 A. x2 d" f8 Ulz可以寫破解的程式?!: y! S6 e6 E! w) p8 N0 Q+ W5 l4 Z
    那怎麼沒試試寫解析的引擎?!
    - B- l* c, X. [+ p& 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. '''/ ^, Z) U  K) |6 h
    2. Based on xmllarge.py9 D% A# g# t; n  K, R6 I: I" z2 t: Z
    3. '''; Q. V: Z3 H. d0 ~8 p. ~8 A
    4. # from pyquery import PyQuery as pq
      " y4 F# E) y. C, @4 Z
    5. from pathlib import Path
      . g$ F' A0 a" q; V. @2 T3 R7 H& ?& q
    6. 5 s: S) |+ S' e9 g) c1 A" H
    7. ; b! s2 _. _+ [/ o
    8. def xml_iter(file, tag):
      6 `7 @6 q3 ], C" y$ I4 }& [
    9.     '''3 o/ h' `$ Q0 S
    10.     Process huge xml files
      3 f+ `0 k; J! X4 S' w  q" a
    11.     <tag> </tag> need to be in separate lines- h$ a+ q/ n6 Y9 J8 o& t
    12.     # TODO: in the middle of lines
      $ N' f# N) k) D) x0 H9 v; E! N

    13. " Z2 N* s  q# a' d' }& w
    14.     :file: file path
      ) V6 _# L( m0 }  G  b2 U% E, |
    15.     :tag: element to retrieve
      # A. }( P5 T3 C+ K" I
    16.     '''
      . M9 c, S: S( ^
    17.     tagb1 = '<' + tag + '>'( ~) h: R$ ?6 k6 `7 W) ~- ]6 B
    18.     tagb1 = tagb1.encode()) o# L! L# S6 e5 |5 _
    19. 6 {7 Y7 Z5 Q: g2 v

    20. + l8 r  R1 l7 @" u* x5 @7 M7 n7 A
    21.     tagb2 = '<' + tag + ' '
      5 I& H  p) c  ^( }. o- i( I% Q
    22.     tagb2 = tagb2.encode()' _$ T& B$ b& D- @
    23. . t/ \" f- V; k' N' |
    24.     tagb3 = '</' + tag + '>'9 G7 U9 R# @/ e4 n
    25.     tagb3 = tagb3.encode()5 r# t6 E# q9 G

    26. + |" f8 w( z# z8 e% T/ {
    27.     with open(file, 'rb') as inputfile:
      * j7 k7 b( _9 L
    28.         append = False
        s7 ^8 N/ R" C5 x6 Y, f
    29.         for line in inputfile:, T/ p/ B$ `0 D. f  d4 C- v
    30.             #~ if b'<tu>' in line or b'<tu ' in line:. j* H5 ]: l. s# n" L# Z
    31.             if tagb1 in line:) X! Y5 C+ H3 Z9 v" T0 W: A
    32.                 inputbuffer = line[line.index(tagb1):]4 [/ p0 H1 F1 r% r4 D1 o! w' `, H
    33.                 append = True, `6 U5 n; X4 O1 M
    34.             elif  tagb2 in line:
      8 M) C% e2 b. Y  _1 X4 B* }/ ]
    35.                 inputbuffer = line[line.index(tagb2):]! n( p- q2 H; ]0 M
    36.                 append = True
      1 c+ v; |7 |' I9 f
    37.             #~ elif b'</tu>' in line:; M5 W& ]( d) L4 P3 {# D
    38.             elif tagb3 in line:
      - o5 N( V1 s( f" W* v
    39.                 inputbuffer += line[:line.index(tagb3) + len(tagb3)]0 h  `6 p7 a/ A7 n2 a* B3 ~
    40.                 append = False9 b# [2 g8 L8 \
    41.                 yield inputbuffer! X' W" ]- x  [, d) A
    42.                 #~ docitem = process_buffer(inputbuffer, id_num)
      ) M! C3 Q2 X9 j5 I: [' W
    43.                 #~ print(id_num)
      ' G, K7 ~# |2 J* _& k- [
    44.                 #~ id_num += 1
      * c* ^/ `$ H) V6 z( U
    45.                 inputbuffer = b''
      $ t) i8 _/ P/ w/ E
    46.             elif append:+ m% j0 B' |' l. w% X7 ~) F5 `
    47.                 inputbuffer += line
    复制代码
    , }" q, G5 J2 C4 r8 u" N1 w

    - I! G7 \% ^' d. p& g这么多人找这东西?我过一阵打包发个小工具。
    * A& j$ M7 k& q; k" {, w! s5 S' l& `$ S$ Q* F2 s2 f" U
    上面的python3函数用法
    : o% u4 [6 f. O  q3 Lresu = ''; n: K& y9 w) E
    for elm in xml_iter(filename, 'tu'):
    , v- e7 m' j) J) ?$ q    resu += elm  e* X( Z. _1 q" h! j2 a( ^3 o

    - M0 d5 b7 a2 M; i% q$ e; j7 l/ L/ c内存足迹极小……不管文件多大。
  • 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:277 {1 y% Z# m- _: {. O
    这么多人找这东西?我过一阵打包发个小工具。! v1 u- D1 g7 J3 K' M8 ?* x0 i; A* J

    7 X$ [) K' w2 H# l) S上面的python3函数用法

    2 L6 z1 v, r, `2 P就喜欢这种一言不合自己写工具的,后面看看你的代码
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-9 03:26 , Processed in 0.082870 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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