如何通过元素路径检索特定的 openXML 元素 Word 文档

How to retrieve specific openXML element Word document by element path

我有 openXML 格式的元素路径,例如:

/w:document[1]/w:body[1]/w:p[1]

我需要从 WordprocessingDocument 中获取此元素作为 OpenXmlElement

像这样:

public OpenXmlElement GetElementByPath(WordprocessingDocument doc, string path)
{
    // Some Logic

    return element;
}

有人帮忙

使用 XPath 查询(与您已经编写的非常相似)。

使用 XmlDocument 加载文件并从文档(根)节点获取 XPathNavigator 实例。

这是我的代码示例:

   using System.Xml;
    using System.Xml.Linq;
    using System.Xml.XPath;

public static List<XmlNode> queryXPath(this IXPathNavigable source, String xPath, XmlNamespaceManager nsManager = null)
    {
        XPathNavigator xNav = source.CreateNavigator();
        if (nsManager == null) nsManager = new XmlNamespaceManager(xNav.NameTable);
        List<XmlNode> output = new List<XmlNode>();
        XPathExpression xExp = XPathExpression.Compile(xPath, nsManager);
        XPathNodeIterator xIterator = xNav.Select(xExp);
        while (xIterator.MoveNext())
        {
            XmlNode tmp = xIterator.Current.UnderlyingObject as XmlNode;

            output.Add(tmp);
        }
        return output;
    }