Парсинг XML фида в C#

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
62
Благодарностей
2
Баллы
8
Приветствую, пытаюсь распарсить XML фид в C#, подскажите как сделать что бы закомментированная строчка заработала (не работает я так понимаю из-за кавычек). Так код работает, всё нормально, но нужно завести переменную project.Xml.yml_catalog.shop.offers.offer["id"].Value , которая закомментирована на примере.
код:
project.Xml.FromString(project.Variables["SourceXML"].Value);

var list = new List<string>();
for(int i = 0; i < project.Xml.yml_catalog.shop.offers.offer.Count; i++)
{
    list.Add(project.Xml.yml_catalog.shop.offers.offer[i].categoryId.Value); // тут работает
    //list.Add(project.Xml.yml_catalog.shop.offers.offer[i]["id"].Value); // тут не работает, полагаю из-за кавычек, как сделать что бы заработала?
}
return string.Join(", ", list);
102257

Ошибка в логе: Выполнение действия CSharp OwnCode. "string" не содержит определения для "Value"
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 718
Баллы
113

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
62
Благодарностей
2
Баллы
8

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 718
Баллы
113

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
62
Благодарностей
2
Баллы
8

Вложения

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
если что-то непонятно, надо вылавливать и анализировать..
1673561005874.png
C#:
var list = new List<string>();
for(int i = 0; i < project.Xml.yml_catalog.shop.offers.offer.Count; i++)
{
//    list.Add(project.Xml.yml_catalog.shop.offers.offer[i].categoryId.Value); // тут работает
    try{
        list.Add(project.Xml.yml_catalog.shop.offers.offer[i]["id"]); // и тут уже работает
    }
    catch(Exception ex){
        project.SendInfoToLog($"{i} *** {ex.Message}");
    }
}
return string.Join(", ", list.Distinct());
1673561105279.png
 
  • Спасибо
Реакции: TeslaCo

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
62
Благодарностей
2
Баллы
8
C#:
var list = new List<string>();
for(int i = 0; i < project.Xml.yml_catalog.shop.offers.offer.Count; i++)
{
//    list.Add(project.Xml.yml_catalog.shop.offers.offer[i].categoryId.Value); // тут работает
    try{
        list.Add(project.Xml.yml_catalog.shop.offers.offer[i]["id"]); // и тут уже работает
    }
    catch(Exception ex){
        project.SendInfoToLog($"{i} *** {ex.Message}");
    }
}
return string.Join(", ", list.Distinct());
Спасибо большое, протестировал, всё отлично работает!
 
  • Спасибо
Реакции: Alexmd

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
62
Благодарностей
2
Баллы
8
Подскажите:
- Как получить весь код offer полностью? (все что есть между тегами <offer и </offer>)
- Как добавить значение параметра под названием Вес ? (<param name="Вес" >30 кг</param>)

что нужно написать вместо:
C#:
project.Xml.yml_catalog.shop.offers.offer[i]["id"]
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 248
Благодарностей
673
Баллы
113
Подскажите:
- Как получить весь код offer полностью? (все что есть между тегами <offer и </offer>)
- Как добавить значение параметра под названием Вес ? (<param name="Вес" >30 кг</param>)

что нужно написать вместо:
C#:
project.Xml.yml_catalog.shop.offers.offer[i]["id"]
Если вы на шарпе пишите то лучше всего воспользоваться Linq to xml, вот простой пример обращения к разметке
102776
 

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
62
Благодарностей
2
Баллы
8
Если вы на шарпе пишите то лучше всего воспользоваться Linq to xml, вот простой пример обращения к разметкеПосмотреть вложение 102776
ни слова не понял...

что нужно написать вместо:
project.Xml.yml_catalog.shop.offers.offer["id"]
что бы получить конкретный параметр Вес или весь код offer ?
 
Последнее редактирование:

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
62
Благодарностей
2
Баллы
8
вопрос актуален
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)