嵌套Open Office XML

时间:2016-11-10 22:50:10

标签: html xml ms-word ms-office

在html中,您可以轻松执行以下操作:

<span id="outsideSpan">
    <span id="insideSpan>
       Some Text
    </span>
</span>

span的innerHTML可以是任何非阻塞的html元素。在开放式办公室XML中,没有一个自然的内部html&#34;运行标签之间。但我们可能会认为标签是SIMILAR,因为它保存了内容&#34;跑步我的问题是,我能做到以下几点吗?

<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&#34;元件?

背景:我的目标实际上是对示例的反击。我最终希望以编程方式更改现有的Word文档,以便任意选择的运行被包围&#34;带有超链接。

1 个答案:

答案 0 :(得分:2)

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