Здравствуйте, catbert, Вы писали:
C>В Немерле есть встроенные средства разбора XML? Вроде как XML-литералы наоборот. Или матчинг по XML.
C>Если нет, как бы вы порекомендовали такое делать?
Для начала вопрос хотите получить в итоге ?
Чем не устраивают парсер XML в .NET-е и чем не устраивает Linq to XML ?
Здравствуйте, catbert, Вы писали:
C>В Немерле есть встроенные средства разбора XML? Вроде как XML-литералы наоборот. Или матчинг по XML.
C>Если нет, как бы вы порекомендовали такое делать?
Возможно имеются ввиду цитирование XML и сопоставление с образцом ?
Это наверное под силу только Nitra и то я не уверен если там уже есть автоматические цитаты.
Как вариант можно придумать макрос xml match по аналогии с regexp match.
Здравствуйте, _NN_, Вы писали:
_NN>Для начала вопрос хотите получить в итоге ?
Да это я как-то не подумал описать.
У меня есть куча рекордов и вариантов, которые описывают некое сообщение. Нужно передать сообщение в формате XML, а потом его принять.
Использую сейчас макрос XmlSerializable и, соответственно, XmlSerializer. Но мне не нравится какие XML-документы в результате создаются, они довольно громоздские и их сложно прочитать, распарсить или составить, не используя XmlSerializer (а возможно придется).
С помощью XML-литералов удалось очень легко написать более-менее элегантный метод ToXml. А вот FromXml красиво написать не выходит. Потому что я могу использовать несколько взаиморекурсивных функций с матчами, которые генерят XML из объекта. А вот для XML приходится какую-то фигню городить.
Так что наверное я хочу что-то вроде или match для XML или как-то по набору правил из XML-ки генерить рекорды и варианты. Что внизу юзается, особенно не волнует, хоть XmlReader, хоть XElement, хоть нитра.
Здравствуйте, 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"
}
Здравствуйте, _NN_, Вы писали:
_NN>Возможно имеются ввиду цитирование XML и сопоставление с образцом ? _NN>Это наверное под силу только Nitra и то я не уверен если там уже есть автоматические цитаты.
Автоматическое цитирование в данном случае просто невозможно. Тут же нужно сопоставление с образцом. Причем оно должно быть не менее мощным, чем xpath/css selectors. Тут один синтаксис не так просто придумать, не то, что полностью автоматом получить что-то рабочее.
_NN>Как вариант можно придумать макрос xml match по аналогии с regexp match.
Именно это и нужно сделать. Причем желательно, чтобы это как-то работало еще и с обычным html, который не проходит xml валидацию.