【发布时间】:2011-10-18 10:09:51
【问题描述】:
我正在尝试编写一个 perl 脚本,从 XML 标记中删除空格,但在值内留下空格。例如,假设我有:
<Example>This is an example.</Exampl e>
我想要完成的是专门敲掉</Exampl e> 中的空白。由于这将适用于整个 XML 文档,我想我会用替换运算符做一些事情,但我无法完全弄清楚如何只匹配可能在 XML 标记本身内部的空格。
非常感谢任何帮助!
编辑:我添加了一个真实的例子来说明正在发生的事情:
not well-formed (invalid token) at line 42, column 25, byte 1456:
<Artist>Eminem</Artist>
<FileName>eminem feat lil wayne - no love -
hotnewhiphop com(2).mp3</ FileName>
========================^
<FileSize>4804478</FileSize>
【问题讨论】:
-
基于此示例,XML 可能格式不正确。那是对的吗? (这对所需的方法有很大的影响。)
-
正确,在我解码包含 xml 数据的引用打印消息后出现问题。但是,根据所使用的架构,标签本身不应有任何空格。
-
你是怎么解码的?您是手动执行此操作还是使用 CPAN 的 MIME 工具(即
MIME::Decoder)? -- 一开始就避免损坏东西总是比事后修补要好 -
我正在使用 MIME::QuotedPrint::Perl 的解码来处理文件,它会清理它(否则你会在某些行的末尾看到 =20)。如果我能告诉 RIAA 清理他们的 XML,那就太好了,但我怀疑他们会合作。
标签: xml regex perl whitespace xml-parsing