嵌套的Open Office XML
问题描述:
在HTML中,你可以很容易地做到以下几点:嵌套的Open Office XML
<span id="outsideSpan">
<span id="insideSpan>
Some Text
</span>
</span>
跨度的innerHTML可以是任何无阻塞html元素。在开放式办公室XML中,运行标签之间没有自然的“内部html”。但我们可能会认为标签是SIMILAR,因为它拥有运行的“内容”。我的问题是,我可以做以下吗?
<w:r>
<w:t>
<w:hyperlink r:id="rId4">
<w:r>
<w:rPr>
<w:rStyle w:val="Hyperlink"/>
</w:rPr>
<w:t>Google</w:t>
</w:r>
</w:hyperlink>
</w:t>
</w:r>
是否会验证任何“父w:t”元素?
背景:我在这里的目标实际上是倒退的例子。我最终希望以编程方式更改现有的Word文档,以便任意选择的运行被超链接“包围”。
答
简短的回答:不,你不能这样做,你在你的问题发布什么,因为根据的Office Open XML模式,将是无效的。
你需要以插入超链接做的是,你需要break up the existing run into multiple runs并在更高层次上添加一个超链接元素(和不低于w:t
元素):
<w:p>
<w:pPr>
<w:rPr>
<w:lang w:val="en-US" />
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:lang w:val="en-US" />
</w:rPr>
<w:t xml:space="preserve">This is a link to the </w:t>
</w:r>
<w:hyperlink r:id="rId4"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
<w:r>
<w:rPr>
<w:rStyle w:val="Hyperlink" />
<w:lang w:val="en-US" />
</w:rPr>
<w:t>Google</w:t>
</w:r>
</w:hyperlink>
<w:r>
<w:rPr>
<w:lang w:val="en-US" />
</w:rPr>
<w:t xml:space="preserve"> web site.</w:t>
</w:r>
</w:p>
标签,如' '在[Office Open XML](https://en.wikipedia.org/wiki/Office_Open_XML)中使用,而不在[OpenOffice.org XML](https://en.wikipedia.org/wiki/OpenOffice.org_XML)中使用。 。请修正标题并删除openoffice.org标记。 –