C# 如何在目录中获取嵌入值和文件名
我有一个C# 如何在目录中获取嵌入值和文件名,c#,openxml,C#,Openxml,我有一个docx文件,希望生成图片文件名/唯一ID组合的列表。 以下是docx文件的相关部分: <w:drawing> <wp:inline distT="0" distB="0" distL="0" distR="0" wp14:anchorId="2C4CE07B" wp14:editId="12367BBF"> ... ... <a:graphicData uri="h
docx
文件,希望生成图片文件名/唯一ID组合的列表。
以下是docx
文件的相关部分:
<w:drawing>
<wp:inline distT="0" distB="0" distL="0" distR="0" wp14:anchorId="2C4CE07B" wp14:editId="12367BBF">
...
...
<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:nvPicPr>
<pic:cNvPr id="2" name="ProfileGraph.png" />
<pic:cNvPicPr />
</pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed="rId9">
<a:extLst>
但是我不知道如何获取属于bliplements
中每个Blips
的cNvPr元素
我是在考虑这个问题
var names = from blip in blipElements
where blip.Ancestors<Picture>().First<Picture>().Descendants<....>()
var name=来自bliplements中的blip
其中blip.祖先().First().subjects()
任何帮助都将不胜感激。像这样的东西怎么样
var body = doc.MainDocumentPart.Document.Body;
var pics = body.Descendants<DocumentFormat.OpenXml.Drawing.Pictures.Picture>();
var result = pics.Select(p => new
{
Id = p.BlipFill.Blip.Embed.Value,
Name = p.NonVisualPictureProperties.NonVisualDrawingProperties.Name.Value
});
var body=doc.MainDocumentPart.Document.body;
var pics=body.subjects();
var result=pics.Select(p=>new
{
Id=p.BlipFill.Blip.Embed.Value,
Name=p.NonVisualPictureProperties.NonVisualDrawingProperties.Name.Value
});
其中,假定doc是已打开的WordProcessingDocument对象
结果变量将是匿名类型的IEnumerable,包含Id和Name属性
我对OpenXML的文字处理知识不太了解,但理论上,Embed和Name属性可能为null,因此我认为您可能需要在访问“.Value”属性之前测试null
var body = doc.MainDocumentPart.Document.Body;
var pics = body.Descendants<DocumentFormat.OpenXml.Drawing.Pictures.Picture>();
var result = pics.Select(p => new
{
Id = p.BlipFill.Blip.Embed.Value,
Name = p.NonVisualPictureProperties.NonVisualDrawingProperties.Name.Value
});