Разбор XML
От: catbert  
Дата: 08.01.14 22:59
Оценка:
В Немерле есть встроенные средства разбора XML? Вроде как XML-литералы наоборот. Или матчинг по XML.

Если нет, как бы вы порекомендовали такое делать?
Re: Разбор XML
От: _NN_ www.nemerleweb.com
Дата: 09.01.14 08:09
Оценка:
Здравствуйте, catbert, Вы писали:

C>В Немерле есть встроенные средства разбора XML? Вроде как XML-литералы наоборот. Или матчинг по XML.


C>Если нет, как бы вы порекомендовали такое делать?


Для начала вопрос хотите получить в итоге ?
Чем не устраивают парсер XML в .NET-е и чем не устраивает Linq to XML ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Разбор XML
От: _NN_ www.nemerleweb.com
Дата: 09.01.14 08:22
Оценка:
Здравствуйте, catbert, Вы писали:

C>В Немерле есть встроенные средства разбора XML? Вроде как XML-литералы наоборот. Или матчинг по XML.


C>Если нет, как бы вы порекомендовали такое делать?


Возможно имеются ввиду цитирование XML и сопоставление с образцом ?
Это наверное под силу только Nitra и то я не уверен если там уже есть автоматические цитаты.

Как вариант можно придумать макрос xml match по аналогии с regexp match.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Разбор XML
От: catbert  
Дата: 09.01.14 13:35
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Для начала вопрос хотите получить в итоге ?


Да это я как-то не подумал описать.

У меня есть куча рекордов и вариантов, которые описывают некое сообщение. Нужно передать сообщение в формате XML, а потом его принять.
Использую сейчас макрос XmlSerializable и, соответственно, XmlSerializer. Но мне не нравится какие XML-документы в результате создаются, они довольно громоздские и их сложно прочитать, распарсить или составить, не используя XmlSerializer (а возможно придется).
С помощью XML-литералов удалось очень легко написать более-менее элегантный метод ToXml. А вот FromXml красиво написать не выходит. Потому что я могу использовать несколько взаиморекурсивных функций с матчами, которые генерят XML из объекта. А вот для XML приходится какую-то фигню городить.

Так что наверное я хочу что-то вроде или match для XML или как-то по набору правил из XML-ки генерить рекорды и варианты. Что внизу юзается, особенно не волнует, хоть XmlReader, хоть XElement, хоть нитра.
Re[3]: Разбор XML
От: _NN_ www.nemerleweb.com
Дата: 09.01.14 14:00
Оценка:
Здравствуйте, catbert, Вы писали:

C>Здравствуйте, _NN_, Вы писали:


_NN>>Для начала вопрос хотите получить в итоге ?


C>Да это я как-то не подумал описать.


C>У меня есть куча рекордов и вариантов, которые описывают некое сообщение. Нужно передать сообщение в формате XML, а потом его принять.

C>Использую сейчас макрос XmlSerializable и, соответственно, XmlSerializer. Но мне не нравится какие XML-документы в результате создаются, они довольно громоздские и их сложно прочитать, распарсить или составить, не используя XmlSerializer (а возможно придется).

Возможно стоит просто написать свой XmlSerializer ?
Или взять какой-нибудь другой готовый , скажем: http://www.sharpserializer.com/en/index.html\
Учитывая что код открыт, наверное проще его подхачить под свои нужды.

C>С помощью XML-литералов удалось очень легко написать более-менее элегантный метод ToXml. А вот FromXml красиво написать не выходит. Потому что я могу использовать несколько взаиморекурсивных функций с матчами, которые генерят XML из объекта. А вот для XML приходится какую-то фигню городить.


C>Так что наверное я хочу что-то вроде или match для XML или как-то по набору правил из XML-ки генерить рекорды и варианты. Что внизу юзается, особенно не волнует, хоть XmlReader, хоть XElement, хоть нитра.

Ну вот можно сделать как в Scala Xml pattern matching.
Будет что-то типа

xml match(myXml)
{
| $"<a>$text</a>" => text
| _ => "Error"
}


Будет конечно круто, но работы немало.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Разбор XML
От: Ziaw Россия  
Дата: 14.01.14 13:36
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Возможно имеются ввиду цитирование XML и сопоставление с образцом ?

_NN>Это наверное под силу только Nitra и то я не уверен если там уже есть автоматические цитаты.

Автоматическое цитирование в данном случае просто невозможно. Тут же нужно сопоставление с образцом. Причем оно должно быть не менее мощным, чем xpath/css selectors. Тут один синтаксис не так просто придумать, не то, что полностью автоматом получить что-то рабочее.

_NN>Как вариант можно придумать макрос xml match по аналогии с regexp match.


Именно это и нужно сделать. Причем желательно, чтобы это как-то работало еще и с обычным html, который не проходит xml валидацию.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.