是否可以使用OPEN XML SDK并生成包含特定docx文件的某些元数据的xml文件?
详细信息:我有一个docx文件,我想从中提取一些元数据(使用open xml)并将它们显示为xml文件,然后使用Jquery以更易读的形式呈现它们。
答案 0 :(得分:3)
您可以使用SDK从docx中可能存在的各种属性部分中提取信息(例如,核心属性部分,其中包括都柏林核心类型信息)。
您可以使用其原生XML格式提取它:
<cp:coreProperties
xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core- properties"
xmlns:dc="http://purl.org/dc/elements/1.1/" .. >
<dc:creator>Joe</dc:creator>
<cp:lastModifiedBy>Joe</cp:lastModifiedBy>
<cp:revision>1</cp:revision>
<dcterms:created xsi:type="dcterms:W3CDTF">2010-11-10T00:32:00Z</dcterms:created>
<dcterms:modified xsi:type="dcterms:W3CDTF">2010-11-10T00:33:00Z</dcterms:modified>
</cp:coreProperties>
或者,在您自己选择的其他一些XML方言中。
答案 1 :(得分:0)
我知道问题是很久以前发布的,但谷歌搜索的第一个结果发送给我。因此,如果有其他人正在寻找解决方案,那么MSDN网站上会有一个代码段https://msdn.microsoft.com/en-us/library/office/cc489219.aspx
简短回答是......使用XmlTextWritter,它适用于Office 2013 afaik:
// Add the CoreFilePropertiesPart part in the new word processing document.
var coreFilePropPart = wordDoc.AddCoreFilePropertiesPart();
using (XmlTextWriter writer = new XmlTextWriter(coreFilePropPart.GetStream(FileMode.Create), System.Text.Encoding.UTF8))
{
writer.WriteRaw("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<cp:coreProperties xmlns:cp=\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\"></cp:coreProperties>");
writer.Flush();
}