读取XML使用LINQ
问题描述:
我想读的名字组成此XML:读取XML使用LINQ
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://mysite.com/">
<name>2</name>
<name>3</name>
<name>4</name>
</string>
尝试:
var doc = XElement.Parse(s);
foreach (var v in doc.Descendants("name"))
{
//do work
}
,但它不工作。为什么?
答
因为你有一个自定义命名空间 - 你需要指定命名空间,当你选择的元素 - 试试这个(测试工作):
XNamespace xmlns = "http://mysite.com/";
var doc = XElement.Parse(s);
foreach (var v in doc.Descendants(xmlns + "name"))
{
//do work
}
这就是正确的。 'XName.Get(“{http://mysite.com/}name”)''或'XName.Get(“http://mysite.com/”,“name”)'也可以工作(参见http: //msdn.microsoft.com/en-us/library/bb299741.aspx) – Zebi 2011-05-09 22:02:40
Works!谢谢! – Cyan 2011-05-09 22:05:09