XSLT 到 DOCX (OOXML) - 如何处理超链接

XSLT to DOCX (OOXML) - How to handle hyperlinks

我正在尝试从 XML 转换为 DOCX 文件,但是我遇到了 hyperlinks(到外部源)的问题,因为它需要 document.xml.rels 中的关系声明.像这样:

<Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.google.com/" TargetMode="External"/>

然后我可以通过它的 id 引用这个关系:

<w:hyperlink r:id="rId5">
  <w:r>
    <w:rPr>
      <w:color w:val="#0070BB"/>
      <w:i/>
    </w:rPr>
    <w:t>
      <xsl:value-of select="string(.)"/>
    </w:t>
  </w:r>
</w:hyperlink>

是否可以在 hyperlink 标签中指定 link URL 作为属性?所以我没有所以使用另一个文件...

像这样:

<w:hyperlink external-url="http://...">
  <w:r>
    <w:rPr>
      <w:color w:val="#0070BB"/>
      <w:i/>
    </w:rPr>
    <w:t>
      <xsl:value-of select="string(.)"/>
    </w:t>
  </w:r>
</w:hyperlink>

如果您没有受困于 XSLT 1.0,您可以使用 <xsl:result-document>。这样你就可以从一个转换中获得多个输出。