可算把这摊子事儿整明白了!前两天被老板塞了个活儿,非让整啥XML转换,说是要用xsxlt工具。好家伙,我寻思这东西还不好找么?结果一搜差点给我整蒙圈——五花八门哪个都说自己牛!得,只能撸起袖子一个个试呗。
为啥要折腾这个?
老板丢过来一堆老系统倒腾出来的XML数据,歪七扭八跟鬼画符似的,想塞进新系统里得先“洗洗澡”。网上说xsxlt干这个最拿手,那就开整呗!
踩坑踩到脚抽筋
头一个试的是XTraductor,名字看着挺唬人。安装包下半天,装好一运行——报错!翻了三页论坛才整明白,还得单独配个老掉牙的Java环境。勉强跑起来了,界面跟Windows98似的,点个按钮卡半天,转了仨文件直接卡死。果断卸载!
接着试LightningTransform,官网吹得天花乱坠,说闪电般速度。下完双击安装……报毒!杀毒软件蹦得跟抽风一样。关杀软硬装,打开界面倒是清爽,拖了个模板文件进去——死活不认格式!折腾两钟头发现它只吃自家产的.dtx模板,气得我当场摔鼠标。
换到第三个NodeFlex,总算能正常用模板了。吭哧吭哧写好转换规则,一点运行——好嘛中文全变火星文!查半天文档发现要手动调UTF-8,调完又报内存溢出。5M的文件转一半就崩,这还转个锤子!
- 吐血发现:免费版只能处理1M以下文件
- 更吐血:收费版月租比我午饭钱还贵
柳暗花明又一坑
本来准备摆烂了,同事扔来个OldButGold。这玩意儿名字土了唧,官网还挂着2008年的截图。战战兢兢下载安装,居然一键搞定!拖模板拖数据点运行——唰一下就转好了!刚想欢呼,转头发现结果文件缺了半截数据……查日志查得眼冒金星,原来它对标签大小写敏感!把<Name>写成<NAME>就直接摆烂!
试的是EasyXSL,真就突出一个“简单”。左边贴XML,右边写规则,下边直接出结果。刚开始美滋滋,结果复杂度一上来彻底抓瞎:
- 循环嵌套超三层直接罢工
- 想写个条件判断?文档翻烂找不到语法
- 转出来的JSON键名永远叫“item1、item2”
总结陈词拍桌子
折腾两天半的没一个完美的!
非要矮子里面拔高个:OldButGold适合转简单文档(记得标签别写错),EasyXSL临时改个小文件还行。至于其他仨?一个要供祖宗,一个要交保护费,还有个干脆是病毒!
跟老板拍桌子:要么雇人专门写脚本,要么加钱买商业软件!您猜老板说“那你再调研五个新工具比较下?”……得,这篇笔记写完我又得继续踩坑去了!