【发布时间】:2019-03-06 01:27:05
【问题描述】:
我们编写了一个软件,它从 Word 文档的内部 XML 文件中处理 XML,并用替换值替换某些代码。有时我们会发现这样的代码在多次运行之间被打断了。下面是我们有时会遇到的这类事情的一个例子:
<w:r>
<w:rPr>
<w:szCs w:val="24"/>
</w:rPr>
<w:t xml:space="preserve">After all, if you trust [CAN:Forename.ATTORNEY#01] enough to give</w:t>
</w:r>
<w:r>
<w:rPr>
<w:color w:val="000000"/>
</w:rPr>
<w:t>[CAN:ObjPronoun.ATTORNEY#01</w:t>
</w:r>
<w:r>
<w:rPr>
<w:szCs w:val="24"/>
</w:rPr>
<w:t xml:space="preserve">] power of attorney, you should trust </w:t>
</w:r>
<w:r>
<w:rPr>
<w:color w:val="000000"/>
</w:rPr>
<w:t>[CAN:ObjPronoun.ATTORNEY#01</w:t>
</w:r>
<w:r>
<w:rPr>
<w:szCs w:val="24"/>
</w:rPr>
<w:t>] enough to make the right decisions at the time.</w:t>
</w:r>
段落开头很好,完整的代码 [CAN:Forename.ATTORNEY#01] 很好地嵌入到单个 w:t 节点中,这很完美,但在此之下,有一个包含代码开头的 w:t 节点, [CAN:ObjPronoun.ATTORNEY#01 但随后 w:t 标记结束,而结束的 ] 将在下一次运行中。
用户体验是段落的开头被渲染得很好,因为[CAN:Forename.ATTORNEY#01]被渲染为某人的名字。但是,当用户在他们的 Word 文档中看到 [CAN:ObjPronoun.ATTORNEY#01] 时,他们 看起来非常好,所以他们希望它也可以呈现为一些文本,我们看不到该代码,因为它被分割了多次运行,因此呈现的文档仍然包含代码,而不是其替换值。
现在我的问题....
谁能解释为什么会发生这种情况?如果用户只是输入代码就可以了,但是如果他们返回并摆弄该段落,就会出现这种情况。有什么我们可以告诉用户“不要这样做”或“不要那样做”或“确保你做某事”的事情。或者 Word 中是否有选项可以防止这种情况发生?
是否有用户可以专门通过 MS Word 前端执行的操作来更正此类段落?目前我们正在指示他们突出显示整个段落,剪切它,将其粘贴到记事本中(它会丢失用户修改历史留下的所有奇怪的碎屑),从记事本中再次复制并将其粘贴回 Word。是的。这样可行。但这有点……不令人满意,至少可以这么说。所以如果有一个原生的 Word 方法来实现同样的事情,那就更优雅了....
【问题讨论】: