读取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 
} 
+0

这就是正确的。 '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

+0

Works!谢谢! – Cyan 2011-05-09 22:05:09