可以打开xml sdk用于创建xml文件吗?

时间:2010-12-06 21:15:34

标签: openxml openxml-sdk

是否可以使用OPEN XML SDK并生成包含特定docx文件的某些元数据的xml文件?

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

2 个答案:

答案 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();
}