gpt4 book ai didi

openxml - 如何以编程方式访问打开的xml word doc文件的内置属性

转载 作者:行者123 更新时间:2023-12-04 17:13:02 26 4
gpt4 key购买 nike

我想访问一个打开的xml word文档文件的一些内置属性(例如作者,最后修改日期等)。我想为此使用开放的xml sdk2.0。所以我想知道是否有任何类或任何方式可以以编程方式访问这些内置属性。

最佳答案

可以在here中找到以下方法的说明,但是几乎您需要将要从core.xml文件中获取的属性传递给该方法,它将返回该值:

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;
}

关于openxml - 如何以编程方式访问打开的xml word doc文件的内置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4433810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com