Ответы пользователя по тегу RSS
  • Правильная верстка RSS?

    Вообще rss должен быть валидным xml.
    XML говорит нам, что все данные которые находятся внутри <![CDATA[]]> будут выведены в результирующее дерево как есть. Т.е. если в значении узла есть символ <, то лучше использовать <![CDATA[]]>. Также нужно учесть, что xml не понимает мнемоники типа &nbsp;. Вместо него нужно писать &amp;nbsp; или же использовать <![CDATA[]]>.
    Я, например, в классе c_xml ( www.phpclasses.org/package/7232-PHP-Convert-between-XML-files-and-arrays-or-strings.html ) делаю так

    static function valueToXML($value){
    	  if (mb_strpos($value,'<')!==false || mb_strpos($value,'&')!==false) {
    			$value="<![CDATA[$value]]>";
    		}
    		return $value;
    	}
    

    У этого кода есть недостаток — он не учитывает непечатные символы.

    Но никакой ошибки не будет если использовать <![CDATA[]]> везде без разбору. Валидаторы провалидируют, а рсс-ридеры прочтут.
    Также не забудьте учесть, что в значении узла может присутствовать сама строка "<![CDATA[]]>". В этом случае я порекомендую её заменить на строку &lt;![CDATA[]]&gt;
    Ответ написан
    Комментировать