w:tags

时间:2016-07-21 10:53:10

标签: ms-word openxml openxml-sdk

我有一个j ava程序在document.xml中搜索rsidR =" 00CA303F" (解压缩DOCX)。

<w:sdtContent>
<w:r w:rsidR="00CA303F">
    <w:rPr>
        <w:rFonts w:cs="Arial"/>
        <w:b/>
        <w:sz w:val="18"/>
        <w:szCs w:val="18"/>
        <w:lang w:val="en-US"/>
    </w:rPr>
    <w:t>17-Jan-14</w:t>
</w:r>
</w:sdtContent>

问题:如果我更改类似docx中的日期以及保存文件后,此 rsidR更改!,我下次无法找到它在我的计划中。

我如何冻结它?或者我可以添加哪个其他固定元素到w:r以便在保存文件后找到它?

我试过的解决方案(不工作):我添加了其他标签(希望它们不会改变),我尝试了例如:w:rsidRDefault,w:id,w:val,w:rsidRPr to this w :r,但Word之后无法打开文件docx。

2 个答案:

答案 0 :(得分:0)

Word或OpenXML文件格式不提供向元素添加ID的直接方式,如果编辑文档,该元素也会保留。

作为一种变通方法,您可以创建一个字符样式,然后将其应用于您感兴趣的文本。然后,您可以在{{1}中搜索具有正确字符样式的w:rStyle元素。 } attribute:

w:val

答案 1 :(得分:0)

应该可以为包含 w:sdt(在后代w:sdtPr/w:id/@w:val中)分配唯一ID。例如,请参阅sdtPr的docx4java文档。

有关rsid的一个很好的解释,以及MS Word如何使用它们,都在What's up with all those rsid's中。在许多应用程序中,完全忽略它们是无害的。