我有一系列从数据回放实用程序生成的XML文件。该实用程序生成格式正确的XML标记。不幸的是,实用程序并不完美。它试图序列化的一些Java对象失败了,它们被简单地插入(作为二进制blob)在这些其他有效的XML标记之间。在
例如。。。在
<track>
<cto>Valid_XML_HERE</cto>@Binary_Blob_of_Junk@<cto>(...)</cto>
</track>
环境是RHEL-5,这意味着Python2.4、Perl或SED/AWK解决方案是可用的。在
关于如何清除垃圾有什么建议吗?在
Tags:
下面是一个快速的Perl解决方案。在
您可以将曲目文本通过管道传送,如下所示:
^{pr2}$使用
XML::Twig
解析器删除track
标记文本的其他方法:以文件作为第一个(也是唯一的)参数运行它:
^{pr2}$我根据Birei的建议来检查树元素,但是我想出了一个只有SED的解决方案。如OP中所示,
<cto>
标记正好在一条连续的线上。因此,解决方案是拆分行,这样每个<cto>
标记都在一个新行上,这样也隔离了新行上的垃圾二进制数据,然后简单地选择以<cto>
标记开头的行。在<tracks>
和</tracks>
标记可以通过CAT简单地添加到新文件中。在下面是我已经测试并确认可以工作的SED命令。。。在
第1步。将
<cto>
标记隔离到新行上。在第二步。只选择以
^{pr2}$<cto>
标记开头的行。在第三步。格式化新的XML文档。在
感谢你们各自的投入。在
相关问题 更多 >
编程相关推荐