Прочитайте XML и получите данные в ASP. net веб-приложении. - PullRequest
0 голосов
/ 02 апреля 2020

Мне нужно найти значение coSpaces total = "3" из приведенного ниже XML в ASP. net C#. Пожалуйста, помогите мне с кодом xmlreader. Я видел другой учебник, где я могу найти значение элемента, но не этот тип.

Спасибо,

<?xml version="1.0"?>
<coSpaces total="3">
    <coSpace id="0">
        <name>A</name>
        <autoGenerated>false</autoGenerated>
    </coSpace>
    <coSpace id="2">
        <name>B</name>
        <autoGenerated>false</autoGenerated>
    </coSpace>
    <coSpace id="4">
        <name>C</name>
        <autoGenerated>false</autoGenerated>
    </coSpace>`
</coSpaces>

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Потратив минуту на изучение XPath, и два метода, которые его используют (SelectSingleNode и SelectNodes), действительно помогут во многих ситуациях.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace testconsole
{
        class Program
        {
                public static string strFileName = "c:\\temp\\test.xml";
                static void Main(string[] args) {
                        XmlDocument xml = new XmlDocument();
                        xml.Load(strFileName);

                        XmlElement ndMatch = (XmlElement) xml.SelectSingleNode("//coSpaces[@total=3]");
                        if (ndMatch != null) {
                                foreach (XmlElement ndCoSpace in ndMatch.SelectNodes("coSpace")) {
                                        Console.Write(ndCoSpace.GetAttribute("id"));
                                }
                        } else {
                                Console.Write("Not found in " + strFileName);
                        }




                }
        }
}
0 голосов
/ 02 апреля 2020

Вы можете получить total следующим образом:

private static string GetTotal()
{
    var document = new XmlDocument();
    using (var file = new FileStream("file.xml", FileMode.Open))
    {
        using (var reader = XmlReader.Create(file))
        {
            while (reader.Read())
            {
                if (reader.IsStartElement())
                {
                    var attr = reader["total"];

                    return attr;
                }
            }
        }
    }

    return null;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...