PDA

Просмотр полной версии : Проблема с парсингом html строк из XML


Recky
25.06.2011, 12:59
Из XML выдергиваю нод:
<desc> <![CDATA[Some Text.</br> description ]]> </desc>

Загоняю его в переменную:
var descTxt:String = bannerXML.image[nextImg].desc;

Теперь надо все это мероприятие отправить в JavaScript:
ExternalInterface.call("ArtTxt", titleTxt, descTxt);

В JavaScript приходит со скобками в escape виде:

Some Text.&lt;/br&gt; description

И соответственно выводиться как "Some Text.</br> description"
А надо бы чтобы тэг переноса работал. Помогите как все это дело разрулить?

stweet
25.06.2011, 14:35
Из XML выдергиваю нод:
Загоняю его в переменную:
var descTxt:String = bannerXML.image[nextImg].desc;

кто же XML данные в String загоняет?

Recky
25.06.2011, 15:59
Кто же так в форумах на вполне конкретные вопросы отвечает?

stweet
25.06.2011, 16:38
Какой вопрос такой и ответ)

-De-
25.06.2011, 16:52
descTxt чему равно? Вроде нормально должно быть.

Recky
25.06.2011, 17:05
равно = Some Text.&lt;/br&gt; description

stweet
25.06.2011, 17:13
поменяй эту строчку
var descTxt:String = bannerXML.image[nextImg].desc;
на
var descTxt:XML = bannerXML.image[nextImg].desc;

Recky
25.06.2011, 19:04
К сожалению JavaScript таких переменных не приемлет, на выходе пусто!

Crazy
25.06.2011, 19:20
Я не очень понимаю, что вы здесь обсуждаете, пока не показан исходный код ArtTxt...

Recky
25.06.2011, 19:25
Ой сорри JavaScript вот на странице:
function ArtTxt(title, desc){
$('#art_description p').text(desc).fadeIn('slow');
}

Crazy
25.06.2011, 19:26
А теперь идем и читаем в доке, что делает text() и какие кроме него там есть методы.

Recky
26.06.2011, 15:04
Ну и как всегда, по традиции, сам спросил сам отвечаю (вдруг кому пригодится):

Конечно же никакие типы переменных типа XML тут ни при чем. Текст должен иметь тип String, тем более, что он еще и обернут <![CDATA[Some text here]]>. Проблема же заключается в том, что когда происходит передача переменной через ExternalInterface.call то JavaScript её принимает как строку и соответственно автоматически заменяет спец символы их escape кодами. Решение очень простое, все встроенными инструментами Jquery:

function ArtTxt(desc){
$('#art_description p').html(desc).text();
$('#art_description p').fadeIn('slow');
}

Вот собственно!

P.S. А на месте модераторов я бы пристально отнесся к высказываниям молодых выскочек, которые не конструктивные ответы дают, а только лишь демонстрируют свое неуважение, дают оценки проф. действий, проявляя при этом, полную некомпетентность к поставленным вопросам, что очень дискредитирует комьюнити и сам форум. Видимо по этому у нас в области IT технологий отставание лет на 10, потому как все считают что они гуру. Правда при этом выхлоп нулевой, но за то понты такие, что впору ими города подсвечивать! Я как всегда крайне разочарован. Теперь наверное еще пару лет здесь появляться не буду.