powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как лучше всего парсить такую XMLину ?
18 сообщений из 18, страница 1 из 1
Как лучше всего парсить такую XMLину ?
    #38897395
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Один из сервисов выдает данные в таких форматах (их несколько разных):

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="utf-8"?>
<ResponseFSA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://rosaccreditation.ru">
<Status>Successfully</Status>
<Comment>Запрос выполнен успешно</Comment>
<RAP><Status xmlns="http://rap.rosaccreditation.ru">Active</Status><Applicant xmlns="http://rap.rosaccreditation.ru"><Type>UL</Type>
<ApplicantUL><FullName>Открытое акционерное общество "Организация"</FullName><ShortName>ОАО "Организация"</ShortName>
<JurAddress>Юридический адрес</JurAddress><Address>Фактический адрес</Address><INN>012345678912</INN><OGRN>0123456789123</OGRN><Phone>(000) 000 00 00</Phone><Email>demo@demo.demo<;/Email></ApplicantUL></Applicant><AccreditedPerson xmlns="http://rap.rosaccreditation.ru"><Name>Открытое акционерное общество "Аккредитованное лицо"</Name>
<Address>Место положения аккредитованного лица</Address><ScopeAccreditation>спирт этиловый ректификованный из пищевого сырья, водки и водки особые, изделия ликероводочные, соки плодовоягодные спиртованные, настои спиртованные, коньяки и спирты коньячные, продукция сахарной промышленности, кофе, мед натуральный, кислота лимрнная, продукты переработки плодов и ягод, плоды, ягоды, орехи, зерновые культуры, сырье растительное, масла эфирные, прянности, вода питьевая централизованных систем питьевого водоснабжения, средства укупорочные, бутылки стеклянные, этикетки, уголь активный древесный дробленный</ScopeAccreditation>
<OKP>Коды ОКП</OKP>
<HSTC>Коды ТН ВЭД</HSTC><OKUN>Коды ОКУН</OKUN><TechRegInfo>Информация о тех. регламентах</TechRegInfo></AccreditedPerson><CertificateInfo xmlns="http://rap.rosaccreditation.ru"><BlankNumber>Номер бланка аттестата</BlankNumber><Number>Номер аттестата</Number>
<DateRegistration>2012-04-16T00:00:00</DateRegistration><DateExpiry>2017-04-16T00:00:00</DateExpiry><IsDuplicate>false</IsDuplicate></CertificateInfo></RAP></ResponseFSA>




Как лучше всего поступить ?
Хочется какой-то объектно ориентированности. Соответственно нужно как-то парсить эту XML в класс - и обратно.

Какие варианты вообще есть ?
Что то не хочется совсем уж в рукопашную кодить парсинг туда и обратно.
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897415
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
googl'ить serialization/deserialization + c# xml + c# xslt + c#
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897424
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,

создать класс-контракт для ResponseFSA со вложенной структурой проперти и десериализовывать с помощью, например, JsonConvert.
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897435
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

JsonConvert понимает XML ?
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897437
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser c# xslt

а это для чего ?
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897442
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek, чтоб проще было по сути однотипные данные, но из разных источников на ваши бизнес-сущности натягивать...
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897445
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,

Посмотри тут
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897447
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
[XmlRoot("ResponseFSA", Namespace = "http://rosaccreditation.ru")]
public class ResponseFsa
{
  public string Status { get; set; }
  public string Comment { get; set; }
  [XmlElement("RAP")]
  public Rap Rap { get; set; }
}

public class Rap
{
  [XmlElement(Namespace = "http://rap.rosaccreditation.ru")]
  public string Status { get; set; }
  [XmlElement(Namespace = "http://rap.rosaccreditation.ru")]
  public Applicant Applicant { get; set; }
}

public class Applicant
{
  public string Type { get; set; }
  [XmlElement("ApplicantUL")]
  public ApplicantUl ApplicantUl { get; set; }
}

public class ApplicantUl
{
  public string FullName { get; set; }
  public string ShortName { get; set; }
  public string JurAddress { get; set; }
  public string Address { get; set; }
  public string INN { get; set; }
  public string OGRN { get; set; }
  public string Phone { get; set; }
  public string Email { get; set; }


и
Код: c#
1.
2.
3.
4.
5.
6.
7.
var xs = new XmlSerializer(typeof (ResponseFsa));
using(var fs = new FileStream(@"D:\Trash\1.xml", FileMode.Open))
using(var xr = XmlReader.Create(fs))
{
  var res = (ResponseFsa)xs.Deserialize(xr);
  ...;
}
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897449
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пожалуйста.

А вот такой вариант вообще рабочий ?
Код: c#
1.
2.
3.
1.имея хsd ты можешь создать нужный DataSet (ReadXmlSchema)
2.DataSet заполняешь данными
3.DataSet сериализуешь в xml (WriteXml)



Это осмысленно ?
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897450
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Кстати имеется даже XSD схема !!
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897453
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Спасибо большое за пример кода ! Сам бы велосипед долго изобретал бы :) А совсем уж в ручную не хочется все парсить.
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897459
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,

Когда на коллекциях объектов споткнетесь, можете, по моей ссылке подглянуть как в ними быть.
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897462
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

Спасибо. Сейчас буду пробовать решение от Сон Веры Павловны, вроде очень перспективно выглядит )
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897477
baike2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F# type provider
Есть xmlprovider как раз для таких случаев
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897484
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baike2000,

ммм.. Это слишком не стандартно. Кто потом будет это поддерживать ? :) не коллеги заругают меня за такое )
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897490
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekА совсем уж в ручную не хочется все парсить.
а что есть вручную?
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897496
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилProBiotekА совсем уж в ручную не хочется все парсить.
а что есть вручную?

Substring'ом, видимо
...
Рейтинг: 0 / 0
Как лучше всего парсить такую XMLину ?
    #38897548
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилProBiotekА совсем уж в ручную не хочется все парсить.
а что есть вручную?

Вручную, это грузить XML в XDocument и потом самому парсить каждый тег и заполнять объектную модель-класс сущности. Ну и наоборот.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как лучше всего парсить такую XMLину ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]