0

我曾经 System.Xml.Linq;从 xml 文档中匹配 Xpath。XElement并且SaveOptions都从System.Xml.Linq;.

           XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
            nsmgr.AddNamespace("ns", "http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-02-03T16:54:46");

            XElement docRfsid = XElement.Parse(content);
            //if (docRfsid.XPathSelectElement("//ns:RFSID", nsmgr).Value != null)
            if (Regex.Match(docRfsid.ToString(), "RFSID", RegexOptions.IgnoreCase).Success)
            {
                projData.RfsId = docRfsid.XPathSelectElement("//ns:RFSID", nsmgr).Value.ToString();
            }

            XElement doc_Financial = XElement.Parse(content);
            string resultFinancial = doc_Financial.XPathSelectElement("//ns:Financial", nsmgr).ToString(SaveOptions.DisableFormatting);

我只想删除System.Xml.Linq;dll,因为我只能使用 .net framework 2.0。有没有其他替代方法可以用来System.Xml.Linq;.

4

2 回答 2

1

是的。使用System.Xml.XmlDocument,特别是其上的SelectNodes()方法、DocumentElement属性或任何XmlElement实例。此方法接受 XPath 并返回匹配的 XmlElement 列表(无论它们是节点 (XmlNode) 还是属性 (XmlAttribute))。这是基于旧的 COM XmlDocument 对象,并且可以追溯到框架的 1.1 版。

于 2013-01-02T12:58:23.663 回答
1

系统文件

就像是

XmlDocument doc = new XmlDocument();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("ns", "http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-02-03T16:54:46");
XmlNode financialNode = doc.DocumentElement.SelectNode("ns:Financial",nsmgr);
strring resultFinancial = null;
if (financialNode != null)
{
  resultFinancial = financialNode.InnerText;
}

那类的东西。

于 2013-01-02T13:06:11.903 回答