掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4829|回复: 19

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

[复制链接]

该用户从未签到

发表于 2013-11-24 17:50:00 | 显示全部楼层 |阅读模式
本帖最后由 hyln9 于 2013-11-24 22:55 编辑
8 v+ ?6 ~" D  B6 M9 E6 Y; P% O% _4 I& S: X1 Z) |6 S
之前打算制作英文维基20131104(https://www.pdawiki.com/forum/thread-11455-1-1.html),47.2GB的xml实在是让我无语,后来在o大的指导下找见了不错的replace pioneer,但是分割处理这么大的文件依然不给力。几经周折,找见了这款鲜为人知但是功能极为强大的xml分割工具,可以分割我的47.2gb的xml。售价貌似99刀,我只是想试用一下,没想到有1gb限制,所以自编程序怒破解之,分享给大家,但是仅限私下使用哦 2 J! u) h! d8 U/ r

, @3 E! G/ d" k/ Z0 A0 T) G9 }1 Z此软件为英文,但是功能确实很强大,截几张图给大家吧:6 E* M8 O" d0 G* A& B. H& ^
: x% f' J+ r% g/ `" u  q3 {
# \+ U: b9 y4 Z# _

2 M, d/ }" i/ F! O" v9 A, e, f
9 T: x: l4 `4 D5 \% f" M8 f
9 S4 R' d( l3 K+ u3 V- F7 h1 l! `  s# m/ _$ [

+ I) k% X! z& e! o- Vps:不知道为什么i-wiki大大的引擎出了什么问题,无法转换。问题是我随便转了某个较小的外语xml成功,转换这个却失败,悲催啊,求教 所以先放出这个工具给大家带来点方便。; y; F9 E0 m2 m7 d9 b; A

# ~5 G% v7 O1 \破解方法:先安装程序。之后把XmlSplit_Crack.exe改名为XmlSplit.exe放入程序文件夹内覆盖原文件(源文件必须备份),运行程序,随便输XXX就注册成功了,然后恢复原来的XmlSplit.exe即可。天杀的360竟然报毒!请关闭360,注册完以后就可以打开360了。
' E) x0 B. T8 }2 a1 v4 r
. A& `. b' a. S& W4 @4 X7 _% Rhttp://pan.baidu.com/s/1eQoIY
' f8 t% v/ P* L! R# c# H" ^0 {" a密码pqw4
; r& j- w! |2 i" o( w) P5 Q/ M- z
2 F- g9 y1 n: }- v- Z7 w, K* n# L6 E3 ]

该用户从未签到

 楼主| 发表于 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
$ T" p( r! v0 g7 q1 x& Q' P关于图片显示,论坛有bug,我是先把图片上传到相册(你看我https://pdawiki.com/forum/space-uid-147948.htm ...

+ D" m1 r0 L+ ?5 ?0 D, 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 8 Z: g1 I9 \* q
    可以试试superfan89的引擎,转出效果应该和aard一样,不过我没试过。
    ' q* r: J' u0 k, A
    谢谢,我试试!不过aard是什么?

    该用户从未签到

     楼主| 发表于 2013-11-24 23:08:59 | 显示全部楼层
    本帖最后由 hyln9 于 2013-11-24 23:16 编辑
    3 X- K  ~0 U+ E  N6 P* U* `. n( j- Z( _
    hyln9 发表于 2013-11-24 23:05 / p$ @8 H2 y, ?$ d' P4 C. X2 Z
    谢谢,我试试!不过aard是什么?
    - z$ L2 @1 T0 ^) S+ ?

    ' b- \* m) c7 }* O+ L; A哦,aard查到了,比我现在用的好啊!我现在用fastwiki和kiwix,前者有公式制作工具不过排版一般,后这简直是完美的无图wiki,但是英文版太大了只更新到了2012年,中文有2013的,不过有mdict版的了,也就不用了。
    : g! G+ m+ c$ A6 L; q, G
    " G4 D/ @$ t( t9 L0 d% ~现在没有linux环境,看来得过一段时间再说了。另外期待唯吾无为老大的新引擎!

    该用户从未签到

    发表于 2013-11-25 01:37:03 | 显示全部楼层
    lz可以寫破解的程式?!
    , A; v8 @* E8 G& b3 n( x* N那怎麼沒試試寫解析的引擎?!

    本帖子中包含更多资源

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

    x

    该用户从未签到

     楼主| 发表于 2013-11-25 17:20:44 | 显示全部楼层
    STFU 发表于 2013-11-25 01:37
    6 N# e4 Q; L& Z: L+ Llz可以寫破解的程式?!
    - c" X; I7 M- r& i- h: b; V. y2 Y那怎麼沒試試寫解析的引擎?!

    * [* [0 R0 c+ X7 ^引擎太复杂,我又没时间其实这个程序破解起来还是比较容易的,我就是把它的验证给替换了一下而已。

    该用户从未签到

     楼主| 发表于 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. '''# n/ W" V6 O$ X* B! m6 [: r
    2. Based on xmllarge.py$ m4 m, P5 `) Y6 u
    3. ''') ?) _2 G% P/ D# r4 p
    4. # from pyquery import PyQuery as pq
      ( n( Q" _$ s; a( p4 ?7 n
    5. from pathlib import Path
      & k1 F" F, Q! M' S

    6. % G! A4 k" ]5 |' R$ r
    7. # F" z5 G  w9 G9 }' f
    8. def xml_iter(file, tag):) H' i, p8 a, y# D7 F) W, A0 u; B, ^1 X
    9.     '''
      6 O' m: ?4 ?. H; l! F
    10.     Process huge xml files, W  M# N+ p/ K# h
    11.     <tag> </tag> need to be in separate lines, c; l# @8 g& r+ ^, F
    12.     # TODO: in the middle of lines& F; L( Q3 Z* S. m$ q6 |1 ^
    13. 8 k# @. A; v$ A; U( D
    14.     :file: file path+ n; x. y' B$ x" I9 C
    15.     :tag: element to retrieve
      3 ~( W; v3 d3 `
    16.     ''': J: K) m: y) h& c- }9 x
    17.     tagb1 = '<' + tag + '>', M  Y+ [7 n( y
    18.     tagb1 = tagb1.encode()* l) o$ ~' n1 W

    19. % F% |: ?* \: z% k9 T1 k

    20. 4 H+ C8 [3 Y7 P3 M2 ?; q
    21.     tagb2 = '<' + tag + ' '8 Q- S; X" t& x+ W: k, M
    22.     tagb2 = tagb2.encode()8 `- _0 i  V. T9 g% R% \& g' U2 |
    23. 2 B& E. Q( s$ V* G) }/ D$ n8 _% M
    24.     tagb3 = '</' + tag + '>'% C' g) q6 F4 T4 a. X
    25.     tagb3 = tagb3.encode()0 Z# K, j3 [. k
    26. ' ^& ~0 P  k" Y
    27.     with open(file, 'rb') as inputfile:% D1 j  J  K$ O3 v$ d( B
    28.         append = False
      " B% a, I; T- J0 d# O( y
    29.         for line in inputfile:+ x! }! Y! V5 }( `( ~2 J' H# P
    30.             #~ if b'<tu>' in line or b'<tu ' in line:4 Q0 {! \3 l7 h/ J5 h) r
    31.             if tagb1 in line:
      5 j4 W: U  k9 u7 A. k1 f, B6 V: a1 t  `
    32.                 inputbuffer = line[line.index(tagb1):]
      5 z. h& a2 `5 Z( F8 M1 T
    33.                 append = True
      * N( A- E& Z$ Z# h' Y# u/ y9 X
    34.             elif  tagb2 in line:
      8 ]3 Y$ O. F9 \! I# O) h2 x
    35.                 inputbuffer = line[line.index(tagb2):]
      ( [9 R: C! Q/ j+ O
    36.                 append = True
      ) l: r; N9 f; B- @
    37.             #~ elif b'</tu>' in line:
      ) K  c. P& o8 Q9 i9 \! c* T9 F
    38.             elif tagb3 in line:
      ' X. t4 p1 e$ q$ T9 Z
    39.                 inputbuffer += line[:line.index(tagb3) + len(tagb3)]4 r5 a5 v. y  g* ]6 `. z% i
    40.                 append = False2 k( Z/ x" t. [- J
    41.                 yield inputbuffer
      ; I3 {5 t' u; z/ q% I
    42.                 #~ docitem = process_buffer(inputbuffer, id_num)% y) w( ?1 T% j  H1 e& Z, y
    43.                 #~ print(id_num)
      7 y/ }! A' Q- ]2 U
    44.                 #~ id_num += 1
      2 i* r$ N1 k( W- Q* N/ m
    45.                 inputbuffer = b''3 v2 i1 X( z5 H! g% p! ]* S3 j
    46.             elif append:
      7 o3 s! p( e9 E8 S7 J! W
    47.                 inputbuffer += line
    复制代码
    7 D5 t# q6 l. [
    $ K! {0 M0 Y5 K$ ]% ?) Z- I
    这么多人找这东西?我过一阵打包发个小工具。8 s, `$ ^, i& H/ M" G' ?- t

    & b4 Y! o5 t* K  `# I% a上面的python3函数用法% M0 c9 Z4 f! Q% z+ ^2 f: n9 c8 q+ c
    resu = ''  s- ?7 {" B4 _! I0 D* D2 q
    for elm in xml_iter(filename, 'tu'):8 M- }: v; ^$ y3 x1 T
        resu += elm! _; z" d# K# {7 c0 B
    , t$ v3 N8 f1 i+ I( g) H1 J! R1 y
    内存足迹极小……不管文件多大。
  • 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! W8 a5 a  f, U
    这么多人找这东西?我过一阵打包发个小工具。
    - ]8 {5 ^1 t" l- ^2 F# E, @& x% X+ j0 Z8 N
    上面的python3函数用法
    ' c) ?- _9 E; h- |: |% v6 W1 \( G
    就喜欢这种一言不合自己写工具的,后面看看你的代码
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-25 09:31 , Processed in 0.102729 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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