【发布时间】:2013-01-11 01:06:59
【问题描述】:
已经为我设定了目标,但我不知道如何到达那里。提前道歉。
使用 Perl - 我将收到一个字符分隔文件(我可以指定其结构),我需要将其转换为 XML like 文件
<MyConfig>
Active = yes
Refresh = 10 min
<Includes>
<Include_Rule_1>
Active = yes
Match = /Foo [Bb]ar/
</Include_Rule_1>
<Include_Rule_2>
Active = yes
Match = /Baz.*/
<Include_Rule_2>
</Include>
<Exclude>
<Exclude_Rule_1>
Exclude = /Bim Bam/
</Exclude_Rule_1>
</Exclude>
</MyConfig>
所以简而言之,它将是 XML like(各个值不被尖括号包围),具有 3 个不变的部分,但它们的深度总是未知的。
我可以使用 CPAN 库,但不喜欢,因为此脚本需要在我无法访问或控制的单个服务器上运行。
有什么想法吗?首发指针 ?提示或技巧?
对不起,我在这里迷路了。
【问题讨论】:
-
你能提供一个示例输入吗?
-
不清楚你想要生成这个XML文件的确切方式,但是,看看stackoverflow.com/questions/4142046/create-xml-file-using-java
-
好吧,因为我可以说明输入看起来像我没有包含它,以免限制解决方案
-
看看
split函数将一行分成字段,然后是 XML::Generator perl 模块(查看 [CPAN](cpan.org))。这是一个简单的 XML 输出模块。 -
欢迎来到 SO。花点时间看看您的示例输出。您是否误漏了
</Includes>?为什么第一个“Active”和“Refresh”属性不是“Includes_Rule”的一部分?你可能想看看 YAML standard 和 Perl 模块,如 YAML::Tiny