如何解决docx 与旧的 Word .xml 文件 - wx:sect 和 wx:sub-section 在哪里?
十多年来,我使用 Word 到 HTML 的转换,它们是基于旧的 Word 2003 XML 格式构建的。现在转移到 .docx 总体来说并不是很难,因为 xmlns:w 和 xmlns:v 模式在很大程度上是相同的,即使 xmlns:w 命名空间 URI 已更改。但是我找不到一件事,那就是 wx:sect 和 wx:sub-section 元素。它们对我很有帮助,因为我会将它们转换为 HTML div 元素。
我在整个解压后的 .docx 树中搜索了 sect 和 sub-section 但找不到。我知道我可以根据样式名称对其进行结构化,但这需要大量额外的工作。所以希望我刚刚忽略了相应的注释/标记?
解决方法
wx:sect 和 wx:subsection 标签已从规范中删除。 XML 结构的其余部分非常相似。我创建了一个带有单个分节符的简单文档。在 .docx 文件中,它看起来像这样:
<w:body>
<w:p w14:paraId="55E1DD0B" w14:textId="754A9065" w:rsidR="00A934F5" w:rsidRDefault="00A934F5" w:rsidP="00857546"/>
<w:p w14:paraId="0AA91CED" w14:textId="77777777" w:rsidR="00701B63" w:rsidRDefault="00701B63" w:rsidP="00857546">
<w:pPr>
<w:sectPr w:rsidR="00701B63" w:rsidSect="00512022">
<w:headerReference w:type="even" r:id="rId6"/>
<w:headerReference w:type="default" r:id="rId7"/>
<w:footerReference w:type="even" r:id="rId8"/>
<w:footerReference w:type="default" r:id="rId9"/>
<w:headerReference w:type="first" r:id="rId10"/>
<w:footerReference w:type="first" r:id="rId11"/>
<w:pgSz w:w="12240" w:h="15840" w:code="1"/>
<w:pgMar w:top="720" w:right="720" w:bottom="720" w:left="720" w:header="360" w:footer="360" w:gutter="0"/>
<w:cols w:space="720"/>
<w:titlePg/>
<w:docGrid w:linePitch="360"/>
</w:sectPr>
</w:pPr>
</w:p>
<w:p w14:paraId="48926183" w14:textId="31B1BCEA" w:rsidR="00701B63" w:rsidRDefault="00701B63" w:rsidP="00857546"/>
<w:sectPr w:rsidR="00701B63" w:rsidSect="00701B63">
<w:type w:val="continuous"/>
<w:pgSz w:w="12240" w:h="15840" w:code="1"/>
<w:pgMar w:top="720" w:right="720" w:bottom="720" w:left="720" w:header="360" w:footer="360" w:gutter="0"/>
<w:cols w:space="720"/>
<w:titlePg/>
<w:docGrid w:linePitch="360"/>
</w:sectPr>
</w:body>
在 Word 2003 XML 文件中,它看起来像这样:
<w:body>
<wx:sect>
<w:p wsp:rsidR="00A934F5" wsp:rsidRDefault="00A934F5" wsp:rsidP="00857546"/>
<w:p wsp:rsidR="00701B63" wsp:rsidRDefault="00701B63" wsp:rsidP="00857546">
<w:pPr>
<w:sectPr wsp:rsidR="00701B63" wsp:rsidSect="00512022">
<w:hdr w:type="even">
<w:p wsp:rsidR="00023B1B" wsp:rsidRDefault="00023B1B">
<w:pPr>
<w:pStyle w:val="Header"/>
</w:pPr>
</w:p>
</w:hdr>
<w:hdr w:type="odd">
<w:p wsp:rsidR="00023B1B" wsp:rsidRDefault="00023B1B">
<w:pPr>
<w:pStyle w:val="Header"/>
</w:pPr>
</w:p>
</w:hdr>
<w:ftr w:type="even">
<w:p wsp:rsidR="00023B1B" wsp:rsidRDefault="00023B1B">
<w:pPr>
<w:pStyle w:val="Footer"/>
</w:pPr>
</w:p>
</w:ftr>
<w:ftr w:type="odd">
<w:p wsp:rsidR="00023B1B" wsp:rsidRDefault="00023B1B">
<w:pPr>
<w:pStyle w:val="Footer"/>
</w:pPr>
</w:p>
</w:ftr>
<w:hdr w:type="first">
<w:p wsp:rsidR="00023B1B" wsp:rsidRDefault="00023B1B" wsp:rsidP="00857546">
<w:pPr>
<w:pStyle w:val="Header"/>
</w:pPr>
</w:p>
</w:hdr>
<w:ftr w:type="first">
<w:p wsp:rsidR="00023B1B" wsp:rsidRDefault="00023B1B" wsp:rsidP="00857546"/>
</w:ftr>
<w:pgSz w:w="12240" w:h="15840" w:code="1"/>
<w:pgMar w:top="720" w:right="720" w:bottom="720" w:left="720" w:header="360" w:footer="360" w:gutter="0"/>
<w:cols w:space="720"/>
<w:titlePg/>
<w:docGrid w:line-pitch="360"/>
</w:sectPr>
</w:pPr>
</w:p>
</wx:sect>
<wx:sect>
<w:p wsp:rsidR="00701B63" wsp:rsidRDefault="00701B63" wsp:rsidP="00857546"/>
<w:sectPr wsp:rsidR="00701B63" wsp:rsidSect="00701B63">
<w:type w:val="continuous"/>
<w:pgSz w:w="12240" w:h="15840" w:code="1"/>
<w:pgMar w:top="720" w:right="720" w:bottom="720" w:left="720" w:header="360" w:footer="360" w:gutter="0"/>
<w:cols w:space="720"/>
<w:titlePg/>
<w:docGrid w:line-pitch="360"/>
</w:sectPr>
</wx:sect>
</w:body>
似乎程序员意识到他们不需要单独的标签来表示一个部分的开始和结束,所以他们把它去掉了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。