.NET 3.x Прочитать XML элемент в котором есть элементы с атрибутами игнорируя остальных - C#

Узнай цену своей работы

Формулировка задачи:

XML Прочитать элемент в котором есть элементы с атрибутами игнорируя остальных вот XML
<?xml version="1.0" encoding="utf-8" ?>
<users>
  <version>1.000</version>
  <user name="Rion" password="123">
    <project name="Hiopn" link="http//sitedown.com" />
  </user>
  <user name="Pion" password="234">
    <tinion name="Gion" link="http//tiondown.ru"  />
  </user>
    <user name="Pion" password="234">
    <tinion name="Gion2" link="http//tiondown2.ru"  />
        <tinion name="Gion3" link="http//tiondown3.ru"  />
  </user>
  <user name="Pion" password="234">
    <tinion name="Gion4" link="http//tiondown4.ru" />
  </user>
</users>
Пытаюсь прочитать определенного юзера
public string[] get_project_test(string xmlload)
        {
            string[] test =null;
            try
            {
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.Load(xmlload);
 
                foreach (XmlNode n in xmldoc.SelectNodes("/users/user/tinion"))
                {
                    if (n.Attributes["name"].Value == "Pion" && n.Attributes["password"].Value == "234")
                    {
 
                       for(int i=0;i<n.Attributes["name"].Value;i++)
                      {
                             test[i]=n.Attributes["name"].Value[i];
                       }
                        
                    }
                }
 
            }
            catch (Exception)
            {
 
                test[0] = "Ошибка";
            }
            return test;
        }
Получить его теги tinion это Gion2 , Gion3 при этом игнорируя остальных, только определенный юзер и его tinion Кто то подскажет что тут надо добавить , или пример скинет

Решение задачи: «.NET 3.x Прочитать XML элемент в котором есть элементы с атрибутами игнорируя остальных»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
 
namespace ConsoleApplication23 {
    class Program {
        static void Main(string[] args) {
            XDocument doc = XDocument.Load(@"C:\Test.xml");
            var res = doc.Descendants("user").Where(u => u.Attribute("name").Value == "Pion" && u.Attribute("password").Value=="234");
            if (res != null) {
                foreach (var r in res) {
                    Console.WriteLine(r);
                }
            }
            Console.ReadLine();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы