使用命名空间读取XML元素的最佳实践

时间:2014-06-15 15:48:22

标签: c# xml xml-namespaces

我试图读取一个在根元素上定义的命名空间的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");

0 个答案:

没有答案