我试图读取一个在根元素上定义的命名空间的XML文件。
我已经阅读了几篇建议使用XReader的文章,使用XmlNamespaceManager,使用RegEx等删除命名空间。
什么是最佳实践"从以下XML中读取Title元素的方法:
<foo xmlns="http://company.com/markup">
<bar>
<title>THIS IS MY TEST TITLE</title>
</bar>
</foo>
如果我从foo元素中删除命名空间,则以下代码只能 :
// Omitted checking for nulls for brevity.
var doc = XDocument.Load(fi.FullName);
var vFoo = doc.Element("foo");
var vBar = vFoo.Element("bar");
var vTitle = vFoo.Element("title");
当我尝试将XName.Get方法与命名空间一起使用时,无法返回根元素。
// Omitted checking for nulls for brevity.
var doc = XDocument.Load(fi.FullName);
// FOLLOWING FAILS TO RETURN ELEMENT DESPITE EXPLICITLY INCLUDING NAMESPACE NAME
var vFoo = doc.Element(XName.Get("foo", "http://company.com/markup"));
var vBar = vFoo.Element("bar");
var vTitle = vFoo.Element("title");