Тэги в Xml

  • Автор темы Автор темы NexQ
  • Дата начала Дата начала

NexQ

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

В xml файле есть элемент <Description></Description> внутри которого находится текст с тэгами html разметки <b>, </b>,<p>,</p>, <ul>,<li> и т.д. Не могу сообразить как проще сделать, чтоб парсер не разбирал внутренность элемент <Description>, а все что внутри него воспринимал как одно значение. Или проще сначала заменить все форматирующие тэги на эквиваленты, разобрать, а потом заменить обратно? Использую в качестве парсера xml_parse() функции.
 
Если <> представлены не как entities, и при этом текст не заключён в ![CDATA[ ]] - поделитесь, где вы такой кривой xml-ник нашли.
 
hermit_refined
А может внутренние тэги соответсвуют xhtml, чего ж кривой сразу
 
denver
Как правило, если разметка данных не относится к логике xml-документа, она экранируется, даже если это валидный xhtml. Видел противников экранирования, но на практике отсутствие экранирования в таких случаях нигде не встречал.
 
Вообще вот заголовок
<News xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="news.xsd">, соответственно в news.xsd есть хитрая строчка
<element name="Description" type="anyType"/>.
Только не знаю каким образом это поможет разобрать документ.
 
никаким!
XML-схема нужна не для разбора документа, а для его валидации.
 
Тогда возвращаемся к вопросу, как пропустить все что внутри этого элемента при разборе :) Особенность в том что сам xml документ изменить нельзя, т.к. он берется из вне из готовый.
 
DOM вряд ли подойдет, размер файла слишком большой >2мб
Вообще перед тем как передать файл парсеру заменяю в нем $xml_data = str_replace("<Description>","<Description><![CDATA[",$xml_data);
$xml_data = str_replace("</Description>","]]>/Description>",$xml_data);

Теперь оно не парсится, но и не записывается :(
 
XMLReader это же для php5, а нужно для 4, но вообще я уже решил эту проблему, может не очень красиво, но эффективно, перед тем как парсить заменяю тэги, например <p> -> [p], потом парсинг, потом обратная замена.
 
Люди, не в тему, но подскажите как вписать &copy; , например, в XML. В дримере они прописаны как entities, но как юзать-то? :)
 
Rammstein entities в каком виде ?
Если типа &lt; - то тебе их надо обїявить для начала, если &#13; то тогда - юзать как есть.
 
BeGe
Хм... парсер ошибку кидает... Может нужно это в xsl:text текст писать?
 
Сверху