我以这种方式调用多个类中的方法:
GetResult(XElement item, XNamespace ns) {
item.Element(ns + "title").Value;
}
为了初始化提要并访问上述元素,我想找出默认命名空间。没有任何命名空间声明,它可以正常工作 (item.Element("title").Value) 并返回元素的值。
那么我怎样才能找到正确的命名空间呢?方法 root.GetDefaultNamespace() 的结果以某种方式为空......
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
<channel>...</channel>
</rss>
//编辑
好的,到目前为止我的代码:
XDocument thisFeed = XDocument.Load(@"http://www.spiegel.de/schlagzeilen/tops/index.rss");
XElement root = thisFeed.Root;
XNamespace ns = root.GetNamespaceOfPrefix("content");
//result:
Console.WriteLine("DefaultNamespace: " + root.GetDefaultNamespace());
//result: http://purl.org/rss/1.0/modules/content/
Console.WriteLine("GetNamespaceOfPrefix('content'): " + ns);
//works
Console.WriteLine("Result: " + root.Element("channel").Element("title").Value);
//Doesn't work
Console.WriteLine("Result: " + root.Element(ns + "channel").Element(ns + "title").Value);