【发布时间】:2013-08-30 11:10:31
【问题描述】:
我有这个 awk/sed 命令
awk '{full=full$0}END{print full;}' initial.xml | sed 's|</Product>|</Product>\
|g' > final.xml
破坏包含大量标签的 XML 文档 这样新文件将在一行中包含产品节点的所有内容
我正在尝试使用 os.system 和 subprocess 模块运行它,但这会将文件的所有内容包装到一行中。
任何人都可以将其转换为等效的 python 脚本吗? 谢谢!
【问题讨论】:
-
为什么不使用 XML 解析器呢?看看ElementTree API。
-
你的
awk代码看起来在full和$0之间缺少+ -
要补充@MartijnPieters 所说的内容,请查看lxml library。
-
@MikeVella:这是一个需要安装的外部库。要从标签中提取文本,stdlib
xml.etree库就足够了。 -
我必须处理文件,使产品标签的内容在同一行,以便我可以确定当我将它传递给映射器时,映射器具有产品的完整信息我正在使用映射器进行 XML 处理,以分配作业并使其运行更快,数据非常庞大