Тэги в Xml

NexQ

Новичок
Тэги в Xml

В xml файле есть элемент <Description></Description> внутри которого находится текст с тэгами html разметки <b>, </b>,<p>,</p>, <ul>,<li> и т.д. Не могу сообразить как проще сделать, чтоб парсер не разбирал внутренность элемент <Description>, а все что внутри него воспринимал как одно значение. Или проще сначала заменить все форматирующие тэги на эквиваленты, разобрать, а потом заменить обратно? Использую в качестве парсера xml_parse() функции.
 

hermit_refined

Отшельник
Если <> представлены не как entities, и при этом текст не заключён в ![CDATA[ ]] - поделитесь, где вы такой кривой xml-ник нашли.
 

denver

?>Скриптер
hermit_refined
А может внутренние тэги соответсвуют xhtml, чего ж кривой сразу
 

hermit_refined

Отшельник
denver
Как правило, если разметка данных не относится к логике xml-документа, она экранируется, даже если это валидный xhtml. Видел противников экранирования, но на практике отсутствие экранирования в таких случаях нигде не встречал.
 

NexQ

Новичок
Вообще вот заголовок
<News xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="news.xsd">, соответственно в news.xsd есть хитрая строчка
<element name="Description" type="anyType"/>.
Только не знаю каким образом это поможет разобрать документ.
 

voituk

прозревший
никаким!
XML-схема нужна не для разбора документа, а для его валидации.
 

NexQ

Новичок
Тогда возвращаемся к вопросу, как пропустить все что внутри этого элемента при разборе :) Особенность в том что сам xml документ изменить нельзя, т.к. он берется из вне из готовый.
 

NexQ

Новичок
DOM вряд ли подойдет, размер файла слишком большой >2мб
Вообще перед тем как передать файл парсеру заменяю в нем $xml_data = str_replace("<Description>","<Description><![CDATA[",$xml_data);
$xml_data = str_replace("</Description>","]]>/Description>",$xml_data);

Теперь оно не парсится, но и не записывается :(
 

NexQ

Новичок
XMLReader это же для php5, а нужно для 4, но вообще я уже решил эту проблему, может не очень красиво, но эффективно, перед тем как парсить заменяю тэги, например <p> -> [p], потом парсинг, потом обратная замена.
 

Rammstein

PHPClub::News
Люди, не в тему, но подскажите как вписать &copy; , например, в XML. В дримере они прописаны как entities, но как юзать-то? :)
 

BeGe

Вождь Апачей, блин (c)
Rammstein entities в каком виде ?
Если типа &lt; - то тебе их надо обїявить для начала, если &#13; то тогда - юзать как есть.
 

Rammstein

PHPClub::News
BeGe
Хм... парсер ошибку кидает... Может нужно это в xsl:text текст писать?
 
Сверху