А Dom класс (вернее Document)
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_dom_document.htm
не подойдет?
Ведь html это подмножество xml.
[quote="Dmitry Shnyrev"]А Dom класс (вернее Document)
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_dom_document.htm
не подойдет?
Ведь html это подмножество xml.[/quote]
На счет подмножества не уверен.
Т.к. xml строже.
[quote="Dmitry Shnyrev"]А Dom класс (вернее Document)
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_dom_document.htm
не подойдет?
Ведь html это подмножество xml.[/quote]
А верстка то еще и кривой бывает, так что нет.
Ну да, бывает. Тогда только внешний сервис свой сделать. С нормальным парсером, чтобы парсил и результаты уже возвращал.
[quote="Dmitry Shnyrev"]Ну да, бывает. Тогда только внешний сервис свой сделать. С нормальным парсером, чтобы парсил и результаты уже возвращал.[/quote]
я в java пользовался jsoup
Ну я думаю что парсеры найдутся везде и это уже зависит от предпочтений Gres на чем поднимать web service
[quote="DevNull"] Я тоже, но для андройда. Прикольная штукенция. Работаешь с html как с jquery[/quote]
хех, ну я же не сказал, что в ентерпрайзе
Опыт тоже был именно на android.
[quote="Dmitry Shnyrev"]Ну я думаю что парсеры найдутся везде и это уже зависит от предпочтений Gres на чем поднимать web service :D[/quote]
Не считаю задачу настолько сложной, чтобы поднимать сервис для этого.
Думал, может уже кто-то реализовывал парсер на Apex.
Ты хочешь сказать что задача парсить невалидный html не сложная? Ну понятно что в любом конкретном случае разобрать страницу не сложно, но написать полноценный парсер на все случаи жизни, я думаю, не такая уж простая задача.
[quote="Gres"]Не считаю задачу настолько сложной[/quote]
Ты хочешь сказать что задача парсить невалидный html не сложная?
Ну понятно что в любом конкретном случае разобрать страницу не сложно, но написать полноценный парсер на все случаи жизни, я думаю, не такая уж простая задача.
[quote="Dmitry Shnyrev"]Ты хочешь сказать что задача парсить невалидный html не сложная?
Ну понятно что в любом конкретном случае разобрать страницу не сложно, но написать полноценный парсер на все случаи жизни, я думаю, не такая уж простая задача.[/quote]
Видимо у нас разные понятия о сложности)
Подожди, я что-то не могу понять мы про одно и тоже говорим? Ты спрашиваешь как на SF разбирать невалидный|битый|malformed HTML? Т.е. иметь такой парсер который возьмет на вход неправильный HTML, переварит его и позволит перемещаться используя какой-нибудь язык запросов? И ты говоришь что это не сложно? Я не думаю, что в браузерах (чья это основная работа - разбирать html) и в таких проектах как HTML TIDY а также парсерах с многолетней историей на этот вопрос отводится пара строчек кода. Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.
Подожди, я что-то не могу понять мы про одно и тоже говорим?
Ты спрашиваешь как на SF разбирать невалидный|битый|malformed HTML?
Т.е. иметь такой парсер который возьмет на вход неправильный HTML, переварит его и позволит перемещаться используя какой-нибудь язык запросов?
И ты говоришь что это не сложно?
Я не думаю, что в браузерах (чья это основная работа - разбирать html) и в таких проектах как [url=http://www.w3.org/People/Raggett/tidy/]HTML TIDY[/url] а также парсерах с многолетней историей на этот вопрос отводится пара строчек кода.
Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.
Как и задача по работе с ZIP архивами Хотя даже на JS есть возсожность вполне комфортно работать.
[quote="Dmitry Shnyrev"]Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.[/quote]
Как и задача по работе с ZIP архивами :) Хотя даже на JS есть возсожность вполне комфортно работать.
[quote="Dmitry Shnyrev"]Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.[/quote]
сложность != трудозатратность
А что от этого парсера требуется? Старых добрых регулярных выражений не хватит?
С ZIP архивами, думаю, всё проще - чуть где отступили от протокола - знай себе вываливай ошибку file corrupted или ещё чего, а тут надо умудриться невалидный HTML распарсить.
А верстка то еще и кривой бывает, так что нет.
Ну а тут, если прям уж кровь из носа нельзя последовать принципу "garbage in - garbage out", лично я бы сделал финт ушами - нормировал невалидный HTML, т.е. сделал его валидным (вероятно в реализованных парсерах так и поступают), а уже валидный HTML скормил бы XML-парсеру, как и предлагал Дмитрий.
А что от этого парсера требуется? Старых добрых регулярных выражений не хватит?
[quote="wilder"][quote="Dmitry Shnyrev"]Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.[/quote]
Как и задача по работе с ZIP архивами :) Хотя даже на JS есть возсожность вполне комфортно работать.[/quote]
С ZIP архивами, думаю, всё проще - чуть где отступили от протокола - знай себе вываливай ошибку file corrupted или ещё чего, а тут надо умудриться невалидный HTML распарсить.
[quote="Gres"]А верстка то еще и кривой бывает, так что нет.[/quote]
Ну а тут, если прям уж кровь из носа нельзя последовать принципу "garbage in - garbage out", лично я бы сделал финт ушами - нормировал невалидный HTML, т.е. сделал его валидным (вероятно в реализованных парсерах так и поступают), а уже валидный HTML скормил бы XML-парсеру, как и предлагал Дмитрий.
Старых добрых регулярных выражений не хватит?
Лучше уж старый добрый indexOf, который еще и быстрее.
[quote="ilya leshchuk"]Старых добрых регулярных выражений не хватит?[/quote]
Лучше уж старый добрый indexOf, который еще и быстрее.
[quote="ilya leshchuk"]А что от этого парсера требуется? [/quote]
Абстракция высокого уровня)
[quote="Gres"][quote="ilya leshchuk"]Старых добрых регулярных выражений не хватит?[/quote]
Лучше уж старый добрый indexOf, который еще и быстрее.[/quote]
Ну indexOf это уже для самых тривиальных задач.
[quote="Gres"][quote="ilya leshchuk"]А что от этого парсера требуется? [/quote]
Абстракция высокого уровня)[/quote]
Это уж слишком абстрактное описание :
[quote="Gres"][quote="ilya leshchuk"]валидный HTML скормил бы XML-парсеру[/quote]
Далеко не всегда сработает.[/quote]
Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.
Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.
А это будет самая сложная задача
Ну indexOf это уже для самых тривиальных задач.
Видимо, ты просто не умеешь им пользоваться)
Это уж слишком абстрактное описание :
А что абстрактного в абстракции над html страничкой?
[quote="ilya leshchuk"]Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.[/quote]
А это будет самая сложная задача
[quote="ilya leshchuk"]Ну indexOf это уже для самых тривиальных задач.[/quote]
Видимо, ты просто не умеешь им пользоваться)
[quote="ilya leshchuk"]Это уж слишком абстрактное описание :[/quote]
А что абстрактного в абстракции над html страничкой?
Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.
А это будет самая сложная задача
Возможно, хотя есть идеи, которые кажутся достаточно просто реализуемыми.
Ну indexOf это уже для самых тривиальных задач.
Видимо, ты просто не умеешь им пользоваться)
- Вы не любите кошек?! Да вы не умеете их готовить... Всякий инструмент под свою задачу - где-то indexOf лучше подойдёт, где-то без regexp'ов не обойтись.
Это уж слишком абстрактное описание :
А что абстрактного в абстракции над html страничкой?
К примеру парсеры разные бывают - SAX, DOM. Я оберну HTML в класс со стринговым полем, добавлю ему возможность искать по регулярным выражениям и это уже будет абстракция более высокого чем String порядка, но вряд ли это будет именно то что требуется.
[quote="Gres"][quote="ilya leshchuk"]Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.[/quote]
А это будет самая сложная задача
[/quote]
Возможно, хотя есть идеи, которые кажутся достаточно просто реализуемыми.
[quote="Gres"][quote="ilya leshchuk"]Ну indexOf это уже для самых тривиальных задач.[/quote]
Видимо, ты просто не умеешь им пользоваться)[/quote]
- Вы не любите кошек?! Да вы не умеете их готовить...
Всякий инструмент под свою задачу - где-то indexOf лучше подойдёт, где-то без regexp'ов не обойтись.
[quote="Gres"][quote="ilya leshchuk"]Это уж слишком абстрактное описание :[/quote]
А что абстрактного в абстракции над html страничкой?[/quote]
К примеру парсеры разные бывают - SAX, DOM. Я оберну HTML в класс со стринговым полем, добавлю ему возможность искать по регулярным выражениям и это уже будет абстракция более высокого чем String порядка, но вряд ли это будет именно то что требуется.