且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何通过使用C#读取XML中特定节点元素下的属性值?

更新时间:2022-11-27 09:15:39

The following should work:

XElement child;
string str = @"<?xml version=""1.0""?>
    <ServerConfig>
      <ServerName>Testserver</ServerName>
    </ServerConfig>";
XDocument doc = XDocument.Parse(str);
child = doc.Descendants("ServerName").FirstOrDefault();
string name = child.Value;


You''re trying to read node''s attribute, but in your example nodes have no attributes. ''Testserver'' is value of <servername> node, not attribute.

public static string getServer()
{
    string serverName = "";
    XmlTextReader reader = new XmlTextReader(filename);
    XmlNodeType nType = reader.NodeType;
    //XmlReaderSettings settings = new XmlReaderSettings();
    //settings.IgnoreWhitespace = true;
    //settings.IgnoreComments = true;
    while (reader.Read())
    {
        if (reader.Name == "ServerName")
        {
            serverName = reader.Value;
            break;
        }
    }
    return serverName;
}