【发布时间】:2016-03-28 11:17:23
【问题描述】:
我正在尝试在 Unix 中创建一个脚本来解析嵌套的 XML。示例如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<deployments>
<appName>apptest</appName>
<envVariable>app</envVariable>
<fileSourceFolder>/sourceTest</fileSourceFolder>
<fileBackupFolder>/testbackup</fileBackupFolder>
<requireRestart>false</requireRestart>
<restartCommandPath>bin</restartCommandPath>
<deployment-files>
<deployment-file>
<deploymentFolder>deployment-folder</deploymentFolder>
<fileName>test-file</fileName>
</deployment-file>
</deployment-files>
<restart-commands>
<restart-command>
<commandName>./appstop</commandName>
</restart-command>
<restart-command>
<commandName>./appstart</commandName>
</restart-command>
</restart-commands>
</deployments>
我需要遍历 deployment-files 和 restart-command 元素。我阅读了有关使用 Perl 的信息,安装的版本是 5.8.8。但是由于缺少库,我不能在 perl 中使用 TWIG 和其他 XML 内容。我也读过其他东西,比如 xml_grep、xmllint 等,但这些东西没有安装在我使用的机器上,由于很多限制,我无法手动安装它们,甚至无法请求它。
我已经尝试使用基于 http://interoperating.info/courses/perl4data/node/26 的示例的 XML::Simple,但仍然不行。
请告知如何为此创建最简单的 perl 或 shell 脚本,并提供参考。我还是 shell 脚本的新手,我昨天才开始探索 perl,所以我将感谢您的所有帮助。谢谢。
【问题讨论】:
-
你自己尝试过什么吗?
-
是的,我确实从互联网上尝试了很多东西。我试图修改这些以满足我的需要,但仍然不能满足我的要求。我基本上是 shell 脚本的新手,昨天我刚刚尝试了 perl,所以我真的需要帮助。非常感谢您提前耐心等待
-
你能发布至少一件事来表明你的努力吗?
-
最好的办法是安装一个 XML 工具。如果您无权在系统范围内安装一个,您可以在您的主目录中安装。有关在本地安装 perl 模块的详细信息,请参阅this question(以及其中链接的问题)。
-
不要使用 XML::Simple。阅读此Why is XML::Simple “Discouraged”? 并使用编辑按钮将您的代码添加到您的问题中。不要在注释中写代码。