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>

似乎程序员意识到他们不需要单独的标签来表示一个部分的开始和结束,所以他们把它去掉了。