2010-12-06 437 views
1

是否可以使用OPEN XML SDK并生成一个包含特定docx文件的某些元数据的xml文件?可以打开xml sdk用于创建xml文件吗?

详细信息:我有一个docx文件,我想从中提取一些元数据(使用open xml)并将它们显示为xml文件,稍后使用jquery以更易读的形式呈现它们。

回答

3

您可以使用SDK从docx中可能存在的各种属性部分(例如,核心属性部分,其中包括dublin核心类型信息)中提取信息。

你可以在它的原生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方言。

0

我知道问题发布很久以前,但谷歌搜索的第一个结果送我到这里。所以,如果有其他人在寻找一个解决方案,这一点,有使用XmlTextWritter在MSDN网站上的片段https://msdn.microsoft.com/en-us/library/office/cc489219.aspx

简短的回答是......,它适用于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(); 
}