C#xmlns可以';t列表节点

C#xmlns可以';t列表节点,c#,xml,C#,Xml,我不知道如何从xml中读取数据 这是我的xml文件: <?xml version="1.0" encoding="UTF-8"?> <ToolSheet xmlns="http://www.mywebpage.hu/ControlDesigner" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Sites>

我不知道如何从xml中读取数据

这是我的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<ToolSheet xmlns="http://www.mywebpage.hu/ControlDesigner" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <Sites>
    <Site name="Name1" telexCode="N1" />
    <Site name="Name2" telexCode="N2" />
    <Site name="Name3" telexCode="N3" />
    <Site name="Name4" telexCode="N3" />
  </Sites>

</ToolSheet>
我无法从xml中列出“站点”。有人能帮我吗?

试试下面的方法:

        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            List<string> results = ParseXml(FILENAME);
        }
        static List<string> ParseXml(string filename)
        {
            XDocument doc = XDocument.Load(filename);
            XNamespace ns = doc.Root.GetDefaultNamespace();

            return doc.Descendants(ns + "Site").Select(x => (string)x.Attribute("name")).ToList();
        }
const string FILENAME=@“c:\temp\test.xml”;
静态void Main(字符串[]参数)
{
列表结果=解析XML(文件名);
}
静态列表解析XML(字符串文件名)
{
XDocument doc=XDocument.Load(文件名);
XNamespace ns=doc.Root.GetDefaultNamespace();
返回doc.subjects(ns+“Site”)。选择(x=>(string)x.Attribute(“name”)).ToList();
}

xmlns
不带后缀声明默认名称空间。这意味着所有元素,
工具表
站点
站点
都在该名称空间中。我明白了,但是我应该如何选择节点呢?我应该用什么样的辛塔克斯
mysn:ToolSheet/mysn:Sites/mysn:Site
我尝试过这个方法,但是我觉得它对我没问题,但是它有不同的语法,然后是
XmlDocument
类,所以我必须弄清楚如何使用itXDocument是用来代替XmlDocument(旧库)的较新的网络库。
nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("mysn", "http://www.mywebpage.hu/ControlDesigner");

//After this read from the xml
XmlNodeList value = doc.SelectNodes("mysn:ToolSheet/Sites/Site");
//And tried much more syntax
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            List<string> results = ParseXml(FILENAME);
        }
        static List<string> ParseXml(string filename)
        {
            XDocument doc = XDocument.Load(filename);
            XNamespace ns = doc.Root.GetDefaultNamespace();

            return doc.Descendants(ns + "Site").Select(x => (string)x.Attribute("name")).ToList();
        }