如何利用OpenXML SDK获取MS word中超链接的绝对URI

本文关键字:超链接 URI 中超 word OpenXML 何利用 SDK 获取 MS | 更新日期: 2023-09-27 18:03:45

一个MS word文件包含到本地文件的链接(MS word, excel, visio…),我使用OpenXML获得链接本地文件的绝对URI。但是我只得到filename.

你能给我一些建议吗?

  using (WordprocessingDocument document = WordprocessingDocument.Open(docxFile, true))
{
    Body body = document.MainDocumentPart.Document.Body;
    //-----------------------------------------------
    DocumentFormat.OpenXml.Wordprocessing.Hyperlink hLink = body.Descendants<DocumentFormat.OpenXml.Wordprocessing.Hyperlink>().FirstOrDefault();
    if (hLink != null)
    {
        // get hyperlink's relation Id (where path stores)
        string relationId = hLink.Id;
        if (relationId != string.Empty)
        {
            // get current relation
            HyperlinkRelationship hr = document.MainDocumentPart.HyperlinkRelationships.Where(a => a.Id == relationId).FirstOrDefault();
            if (hr != null)
            { 
                string path = hr.Uri.AbsolutePath; //exception
            }
        }
    }
}

如何利用OpenXML SDK获取MS word中超链接的绝对URI

使用hr.Uri.ToString()方法获取路径

根据MSDN:"AbsolutePath属性包含服务器用来解析信息请求的路径信息。"

https://msdn.microsoft.com/en-us/library/system.uri.absolutepath%28v=vs.110%29.aspx?f=255& MSPPError = -2147217396