chandra sekhar Ответов: 1

Извлечение первых 50 записей из XML


Это мой ответ

<Storerecords>
<name>xxx</name>
<id>1</id>
</Storerecords>
<Storerecords>
<name>test</name>
<id>2</id>
</Storerecords>
<Storerecords>
<name>test1</name>
<id>3</id>
</Storerecords>


Что я уже пробовал:

XmlDocument responseXml = new XmlDocument();

           XmlSerializer xmlSerializer = new XmlSerializer(response.ABRPayloadSearchResults.GetType());
           using (MemoryStream xmlStream = new MemoryStream())
           {
               xmlSerializer.Serialize(xmlStream, response.ABRPayloadSearchResults);
               xmlStream.Position = 0;
               //Loads the XML document from the specified string.
               responseXml.Load(xmlStream);
           }

           XDocument xe = XDocument.Parse(responseXml)//getting error here ;

Afzaal Ahmad Zeeshan

Для извлечения первых 50 записей все равно потребуется создать объект среды выполнения (десериализовать XML), который, как уже упоминалось в решении 1, нуждается в действительном XML-документе.

chandra sekhar

Я обновил XML - файл

1 Ответов

Рейтинг:
1

RickZeeland

Ваш XML-файл недействителен, вы можете проверить его здесь: Проверка XML: проверка XML[^]

Если вы хотите только частично разобрать XML используйте XmlReader: https://www.dotnetperls.com/xmlreader[^]

Пример:

using (XmlReader reader = XmlReader.Create("test.xml"))
{
    try
    {
        while (reader.Read())
        {
            // Start element
            if (reader.IsStartElement())
            {
                Debug.Print(reader.Name);
                reader.Read();
                Debug.Print(reader.Value);
                Debug.Print("");
            }
        }
    }
    catch (System.Exception ex)
    {
        Debug.Print(ex.Message);
    }
}


chandra sekhar

Так нужно ли мне разбирать xml-файл?

RickZeeland

Не обязательно, если вы только хотите найти что-то, что вы могли бы сделать, например responseXml.Содержит("<asicnumber>");