1

我正在开发一个 WinRT 应用程序,我应该准备一些带有命名空间的 XML。现在这对旧的 .NET 没问题,但现在不再有 XmlDocument.NameTable。那么如何创建一个 XmlNamespaceManager?

var XmlDoc = new XmlDocument();

XmlDoc.Load(new FileStream("XMLFile1.xml",FileMode.Open,FileAccess.Read));
var nsm = new XmlNamespaceManager(XmlDoc.NameTable);
nsm.AddNamespace("s", "http://api.facebook.com/1.0/");
4

1 回答 1

1

使用 LINQ to XML 处理命名空间要容易得多,我相信您可以在 Windows 8 中使用它:

XDocument doc = XDocument.Load(...);
XNamespace ns = "http://api.facebook.com/1.0/";
XElement element = doc.Root.Element(ns + "foo");

阅读一篇好的 LINQ to XML 介绍或教程,您应该了解如何处理名称空间 - 但它确实比使用XmlDocument. 您根本不再需要命名空间管理器!(可能在某些情况下它们仍然有用 - 我不确定 - 但我当然不记得自己在 LINQ to XML 中使用过它们。)

于 2012-11-19T23:36:49.390 回答