Работа с Xml в Visual C#

Тема в разделе ".NET", создана пользователем ssssmileeee, 13 ноя 2010.

Статус темы:
Закрыта.
  1. ssssmileeee

    ssssmileeee Гость

    Имеется следующий хмл документ:
    Код (Text):
    <?xml version="1.0" encoding="utf-8"?>
    <LanMonitor UserIP="192.168.1.1" UserName="User1" Update="01.01.2010">
    <StartedProcesses>
    <Process>
    <Name>111.exe</Name>
    <LastStart>
    <Date>01.01.2010</Date>
    <Time>09:00</Time>
    </LastStart>
    </Process>
    </StartedProcesses>
    </LanMonitor>
    Как мне получить текстовое значение атрибута UserName из строки
    Код (Text):
    <LanMonitor UserIP="192.168.1.1" UserName="User1" Update="01.01.2010">
    Пробовал писать код, но впервые работаю с XML, поэтому не очень понимаю, как получать атрибут конкретного элемента.
    <!--shcode--><pre><code class='c#'> XmlDocument xmldoc = new XmlDocument(C:\1.xml");
    xmldoc.Load();
    XmlNodeReader xmlreader = new XmlNodeReader(xmldoc);
    XmlNode rootnode = xmldoc.DocumentElement;
    XmlNodeList childnodes = rootnode.ChildNodes;
    xmlreader.Read();
    ClientName.Text = childnodes[0].Attributes["UserName"].Value; //есть предположения, что как-то так, но не получается считать.[/CODE]
     
  2. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Вариант 1, простой:
    Код (Text):
    var xmlDoc = new XmlDocument();
    xmlDoc.Load("C:\1.xml");

    var node = xmlDoc.SelectSingleNode("/LanMonitor");
    Console.WriteLine(node.Attributes["UserName"].Value);
    Вариант 2, сложнее, но, по идее, шустрее работает, если XML-документ большой:
    Код (Text):
    using (var reader = XmlReader.Create("C:\1.xml"))
    {
    while (reader.Read())
    {
    if (reader.NodeType == XmlNodeType.Element && reader.Name == "LanMonitor")
    {
    Console.WriteLine(reader.GetAttribute("UserName"));
    break;
    }
    }
    }
     
  3. ssssmileeee

    ssssmileeee Гость

    спасибо, работает
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей