如何利用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
}
}
}
}
使用hr.Uri.ToString()方法获取路径
根据MSDN:"AbsolutePath属性包含服务器用来解析信息请求的路径信息。"
https://msdn.microsoft.com/en-us/library/system.uri.absolutepath%28v=vs.110%29.aspx?f=255& MSPPError = -2147217396