An explanation of the following method can be found here , but pretty much you need to pass the properties that you want to get from the core.xml file for this method, and it will return a value:
public static string WDRetrieveCoreProperty(string docName, string propertyName) { // Given a document name and a core property, retrieve the value of the property. // Note that because this code uses the SelectSingleNode method, // the search is case sensitive. That is, looking for "Author" is not // the same as looking for "author". const string corePropertiesSchema = "http://schemas.openxmlformats.org/package/2006/metadata/core-properties"; const string dcPropertiesSchema = "http://purl.org/dc/elements/1.1/"; const string dcTermsPropertiesSchema = "http://purl.org/dc/terms/"; string propertyValue = string.Empty; using (WordprocessingDocument wdPackage = WordprocessingDocument.Open(docName, true)) { // Get the core properties part (core.xml). CoreFilePropertiesPart corePropertiesPart = wdPackage.CoreFilePropertiesPart; // Manage namespaces to perform XML XPath queries. NameTable nt = new NameTable(); XmlNamespaceManager nsManager = new XmlNamespaceManager(nt); nsManager.AddNamespace("cp", corePropertiesSchema); nsManager.AddNamespace("dc", dcPropertiesSchema); nsManager.AddNamespace("dcterms", dcTermsPropertiesSchema); // Get the properties from the package. XmlDocument xdoc = new XmlDocument(nt); // Load the XML in the part into an XmlDocument instance. xdoc.Load(corePropertiesPart.GetStream()); string searchString = string.Format("//cp:coreProperties/{0}", propertyName); XmlNode xNode = xdoc.SelectSingleNode(searchString, nsManager); if (!(xNode == null)) { propertyValue = xNode.InnerText; } } return propertyValue; }
source share