是否可以使用 OPEN XML SDK 并生成包含特定 docx 文件的一些元数据的 xml 文件?
详细信息:我有一个 docx 文件,我想从中提取一些元数据(使用打开的 xml)并将它们显示为 xml 文件,然后使用 Jquery 以更易读的形式呈现它们。
是否可以使用 OPEN XML SDK 并生成包含特定 docx 文件的一些元数据的 xml 文件?
详细信息:我有一个 docx 文件,我想从中提取一些元数据(使用打开的 xml)并将它们显示为 xml 文件,然后使用 Jquery 以更易读的形式呈现它们。
您可以使用 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 方言。
我知道问题是很久以前发布的,但谷歌搜索的第一个结果把我送到了这里。因此,如果还有其他人正在寻找解决方案,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();
}