正在尝试将msword2007文档转换为XML表单

2024-04-20 13:21:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我可以放弃历史,但请相信我的以下几点:

  1. 我有几个人可以立即访问msword2007
  2. 我们正在尝试准备一个通用的Word文档,它可以在人与人之间传递 在几个月的过程中,他们可以“添加”新的内容。在

不管下面的答案是什么-以上将保持不变,无论它是多么可怕的想法,或什么更好的想法,你可能有。。。我已经走过这条路了:P

  1. 我的“想法”是(在Word中)设置一个XML模式,这样我们就可以“标记”特定内容区域的内容(例如,项目编号、项目描述、项目干、项目选项、项目答案等)
  2. 我花了不到6个小时自学了xmlschema,显然我是个糟糕的老师:我有xmlschema文件,我已经把它导入Word中,我能够根据所有的在线教程标记区域。。。在
  3. 我希望保存到一个“XML”文件中(来自Word),它看起来像:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

(只是从一个随机站点上取出来,以证明我想从word文档中保存填充了数据的XML结构)

我希望我可以用Python进行解析,或者将XML文件发送给供应商,然后供应商可以将信息上传到数据库中(不-我们不能只上传到数据库-它必须从Word文档到XML到供应商)。在

问题是:每当我从msword2007将文件保存为XML时,它会给我带来所有这些可怕的XML垃圾——我检查了一下是否可以解析它,希望找到嵌入的XML标记,然后找到它们,但是它被所有的office标签/垃圾搞得乱七八糟,解析出来会浪费大量时间。在

最后:我如何让word自动填充XML标记(通过自动地理解有人必须“选择文本”、“分配XML”。。。从我开发的模式(或者我可以只创建一个没有模式的示例XML树吗?)并导出可供上传/解析的内容?在

感谢你阅读我的短篇小说:p(希望我足够清楚!)在

-J


Tags: 文件to项目答案文档标记区域内容
1条回答
网友
1楼 · 发布于 2024-04-20 13:21:15

如果数据与您提供的示例一样一致(例如,note元素,具有固定数量的字段),那么您可以在Word文档中使用一个大表,其中包含tofromheadingbody等列,您可以使用this question中描述的方法之一在Python中解析它并输出您的自定义XML。由于.docx文件已经是XML,这可能会也可能不会使您的工作更简单。在

如果数据要更复杂,一个想法可能是使用单词样式将文本映射到正确的标记。您可以为每个标记创建一个自定义样式,这样用户就可以方便快捷地单击(并且可能有不同的颜色和/或字体)。然后在分析文档时,可以根据应用的段落样式过滤所有内容。不过,我觉得这条路会很痛苦。在

另一个选择可能是用类似YAML这样的结构化语法来编写文档,这很容易手工读写,而且您只需将文件保存为明文就可以进行解析,例如

# plaintext_export.txt
         
Notes:
- From: Somebody
  To: Somebody-else
  Heading: This is a heading
  Message: > 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. 

- From: Another guy
  To: Me
  Heading: Huh?
  Message: >
    Some other message content.

解析过程非常简单:

^{pr2}$

相关问题 更多 >