IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   delphi строка содержащая < и другие &___; (http://www.imho.ws/showthread.php?t=147044)

Alex Dark 18.05.2012 19:22

delphi строка содержащая < и другие &___;
 
Доброго времени суток.
Есть такая затыка. Просто не знаю как запрос создать что бы в инете найти. Ковыряю уже не первый день...
Прога на дельфе получает файл из инета (формат RSS)
нарыл в инете готовый кусок чтения RSS (Через DOMDocument)

Соответственно в полученном файле есть строки типа "Автор: <a href="http://forum......"
Дельфа их принимает и они во внутреннем представлении отражаются как 'Автор: <a href="http://forum......'

В принципе меня это не напрягает, а очень даже устраивает.
Но... результат надо сохранить опять в формате RSS.

Я с ним (с DOMDocument) ковыряться-разбираться не стал. Просто тупо в текстовик (AssignFile) сливаю то что нужно, подсунув заголовок и окончание в формате RSS.
И всё прекрасно, но в разделе <description> обязательно должны быть &lt; и другие &___; А я не знаю как заставить дельфу писать (<>") двойные кавычки, скобки и другие знаки в виде &___;

BorLase 19.05.2012 07:09

это называется html entity

есди верить гуглу - в HTTPApp unit есть функции HTTPDecode и HTMLDecode, поищи

Alex Dark 22.05.2012 07:07

Не совсем конечно то, но всё-же :beer:
Проблему решил другим способом.

Plague 22.05.2012 08:24

Цитата:

Сообщение от Alex Dark (Сообщение 1760791)
Проблему решил другим способом.

Вот тебя самого не бесит когда начинаешь гуглить какой-то вопрос, и вот оно - та же проблема, все симптомы те же, буква-в-букву... и через пару постов "всем спасибо, разобрался".?
Лично у меня возникает желание задушить. Медленно и цинично.

BorLase 22.05.2012 09:10

Цитата:

Сообщение от Plague (Сообщение 1760794)
Лично у меня возникает желание задушить. Медленно и цинично.

ага :) причем, по закону подлости, ни намека на решение, пост годовой давности и юзер появлялся последний раз тогда же ;)

Alex Dark, само собой, вопрос можно решить несколькими способами. По большому счету, достаточно заменить

&quot; "
&amp; &
&apos; '
&lt; <
&gt; >

и мы получим валидный XML.

Или же, в подобных случаях, я лично предпочитаю содержимое тегов типа <description>, <author>, <title> и тд заключать в <![CDATA[]]>. Убиваем сразу двух зайцев - и валидация проходит нормально, и читабельность текста остается "человеческой".

Alex Dark 23.05.2012 23:51

Цитата:

Сообщение от Plague (Сообщение 1760794)
Медленно и цинично.

:молись: Чесслово. Я два дня (по вечерам до двух ночи) бился. Здесь уже написал от безысходности.

Я честно говоря сам не понял что это такое у меня было.
Не буду описывать всю эпопею, но проблема решилась вытаскиванием в отдельный модуль этого куска алгоритма.

Я именно так и делал, как написал BorLase, заменой двойной кавычки на &quot; < на &lt; и т.д
но всё шаманство заключалось в том, что (смотрел под отладчиком) делаю замену двойной кавычки - срабатывает. Делаю замену < срабатывает, но при этом &quot; заменилось двойной кавычкой. Меняю > на &gt; - &lt; заменился на < :idontnow:

Похоже что я экспериментируя (изучая дельфу) чего то накрутил лишнего. Ну "чисткой" я займусь после того как реализую задуманное до конца. В общем, осталось не так уж и много. Сделать вывод в richEdit текста с форматированием

PS вообще то это мой первый опыт работы с дельфой

PS2 опробовал и CDATA. Работает. Раньше как то разбирать или создавать XML не приходилось.
Знал бы, то вопрос не задавал бы и столько не бился в пустую


Часовой пояс GMT +4, время: 01:55.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.