我有一个单词2007 .docx文件。我通过在末尾添加扩展名“.zip”来创建其zip文件。当我解压缩zip文件时,它给了我几个带有xml文件的文件夹。我希望通过组合文件夹中的所有xml文件来获取单个xml工作表,以便为其编写xsl样式表。我不想打开“.docx”文件并尝试“另存为xml”。有没有办法做到这一点?或者我可以至少拥有该文档的WordML文件?如果是这样的话。提前谢谢。
答案 0 :(得分:0)
使用您选择的支持解压缩,目录树遍历和基于行的文本文件处理的工具(集)。首先解压缩您的word文件,保留归档的目录结构。接下来,您将解压缩到的目录中的目录walker,处理所有.xml
和.rels
文件;从每个文件中删除第一行(包含xml声明,例如<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
),然后依次连接到全局输出xml文件,第一行应包含xml声明本身。
确保你的工具遵守xml文件的charset编码(应该是utf-8)。
Perl软件包File::Find和Archive::Zip可以帮助完成此任务,但您可以使用标准cli工具(zip / unzip,find,cat,sed)完成工作。< / p>
您可能必须使用某些合成区分属性来补充Relationships
文件的顶级.rels
元素以避免ID冲突 - 大多数关系条目的适用性应该是唯一的,因为Type
属性,但ms规格似乎有点含糊,关于办公室本身是否保证相同类型的所有关系项目的唯一ID(或者我没有彻底阅读规范......)。请注意,相关非xml文件(图形,vba代码)的名称显示在[Content_Types].xml
和关系文件中。
希望(仍然)帮助,问候,汽车