perl XML 转换解决方案
我是 Perl 和 CPAN 模块的初学者,
我想转换 xml 文件,包括:
<Item><Link>http://example.com/</Link></Item>....
?
<Item><Link>http://mysite.com/</Link></Item>....
您有智能解决方案吗 带有CPAN模块
I'm a beginner for Perl and CPAN Modules
I wanna convert a xml file include:
<Item><Link>http://example.com/</Link></Item>....
To
<Item><Link>http://mysite.com/</Link></Item>....
Do you have smart solutions ? with CPAN Module
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
例如
输出:
like,
output:
下面是使用 XML::Twig 的简单解决方案。与 XML::Simple 选项相比,无论
Link
元素位于 XML 中的哪个位置,它都有效,并且它将尊重文件的原始格式。如果 XML 包含混合内容,它也将起作用。如果您需要就地更改文件,可以使用
parsefile_inplace
而不是parsefile
,我怀疑subs_text
中的正则表达式可能需要在现实生活中需要改进,但是这段代码应该是一个很好的起点。A simple solution using XML::Twig is below. Compared with the XML::Simple option it works no matter where the
Link
elements are in the XML, and it will respect the original formatting of the file. It will also work if the XML contains mixed-content.If you need to change the file in place, you can use
parsefile_inplace
instead ofparsefile
, and I suspect the regular expression insubs_text
may need to be improved in real life, but this code should be a good starting point.如果您需要的只是更改特定值,那么您实际上不需要任何特殊的东西,您可以简单地使用正则表达式:
从命令行:
编辑:添加完整代码版本:
If all you need is changing a specific value, you don't really need anything special, you can simply use regexp:
from command line :
edit : adding full code version :