<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DimoninG.ru &#187; XML</title>
	<atom:link href="http://dimoning.ru/category/dev/xml/feed" rel="self" type="application/rss+xml" />
	<link>http://dimoning.ru</link>
	<description>программирование сайтов и скриптов</description>
	<lastBuildDate>Fri, 13 Jan 2012 22:38:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Вывод XML в браузер, почему может не работать обработка браузером?</title>
		<link>http://dimoning.ru/vyivod-xml-v-brauzer-pochemu-mozhet-ne-rabotat-obrabotka-brauzerom.html</link>
		<comments>http://dimoning.ru/vyivod-xml-v-brauzer-pochemu-mozhet-ne-rabotat-obrabotka-brauzerom.html#comments</comments>
		<pubDate>Wed, 06 May 2009 12:46:32 +0000</pubDate>
		<dc:creator>DimoninG</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://dimoning.ru/?p=1077</guid>
		<description><![CDATA[В моем предпоследнем проекте был пользовательский XML, куда заносились данные о товарах и предоставлялись партнерам в качестве рекламных материалов. XML выводился как обычный текст.
Сам XML был составлен по всем &#171;законам жанра&#187; &#8211; определение &#60;?xml?&#62; в начале, указание кодировки, главного тега. Все теги были закрыты, ошибок не было.
Браузеры, как Вы знаете, любят отображать XML по-своему. Оформлять [...]]]></description>
			<content:encoded><![CDATA[<p>В моем предпоследнем проекте был пользовательский XML, куда заносились данные о товарах и предоставлялись партнерам в качестве рекламных материалов. XML выводился как обычный текст.</p>
<p>Сам XML был составлен по всем &laquo;законам жанра&raquo; &#8211; определение &lt;?xml?&gt; в начале, указание кодировки, главного тега. Все теги были закрыты, ошибок не было.</p>
<p>Браузеры, как Вы знаете, любят отображать XML по-своему. Оформлять его специальным образом. Этим занимается ФайрФокс и ИЕ (для Оперы нужен плагин). Чтобы было понятно о чем я, вот <a href="http://gameboss.ru/engine/guest.xml?stype=19&amp;id=&amp;search=1,2,3,4&amp;ip=1,3,4&amp;purchase=35404&amp;page=0&amp;pp=5" target="_blank">пример</a>.</p>
<p>Но мой XML почему-то так не отображался. Он отображался просто текстом, причем теги &laquo;пропадали&raquo; (оно и понятно, браузер не знает таких тегов, но не показывает их). Заказчик же, заметив это, решил, что у меня неправильный XML (понятно, что на сам файл это никак не сказывается).</p>
<p>В чем было дело? Оказалось, что есть две причины на такое &laquo;неправильное&raquo; отображение.</p>
<p>1) Нужно передать заголовок Content-Type: text/xml; charset=utf-8. Отличается от &laquo;обычного&raquo; он типом контента (обычно text/html). В PHP заголовок передается так: header (&laquo;Content-Type: text/xml; charset=utf-8&#8243;); (до вывода чего-либо, конечно).</p>
<p>2) По непонятной мне причине XML не может содержать наоборов символов а-ля &amp;nbsp;, но при этом может содержать аналогичные замены для кавычек, например. Также XML не может содержать HTML-теги внутри XML-тегов. То есть может-то может, но тогда браузер будет ругаться на него.</p>
<p>Я написал небольшую функцию, через которую нужно пропустить текст до вывода в XML (скажем, описание товара). Она вырезает теги и некоторые недопустимые комбинации символов.</p>
<p>function xml_check($c){<br />
$c = strip_tags ($c);<br />
$c = str_replace (&laquo;&amp;ndash;&raquo;, &laquo;&raquo;, $c);<br />
$c = str_replace (&laquo;&amp;nbsp;&raquo;, &laquo;&raquo;, $c);<br />
$c = str_replace (&laquo;&amp;ldquo;&raquo;, &laquo;&raquo;, $c);<br />
return $c;<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://dimoning.ru/vyivod-xml-v-brauzer-pochemu-mozhet-ne-rabotat-obrabotka-brauzerom.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

