嵌套的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文档,以便任意选择的运行被超链接“包围”。

+2

标签,如' '在[Office Open XML](https://en.wikipedia.org/wiki/Office_Open_XML)中使用,而不在[OpenOffice.org XML](https://en.wikipedia.org/wiki/OpenOffice.org_XML)中使用。 。请修正标题并删除openoffice.org标记。 –

简短的回答:不,你不能这样做,你在你的问题发布什么,因为根据的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>