parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

G_Z 19.10.2004 14:26

Дык, а нечего показывать....
Это происходит в разных интерпретациях.
К примеру свежий случай.
Яндекс.xml:
$body[<?xml version="1.0" encoding="windows-1251"?>
<request>
	<query>^taint[xml][$query << host="www.x.ru"]</query>
	<groupings>
		<groupby attr="d" mode="deep" groups-on-page="10" docs-in-group="1"/>
	</groupings>
</request>]
приводит к ошибке парсинга Яндексом.
Он не видит закрывающего </query>, поскольку в запрос пролазят "<<".

Однако если сделать так:
$replace[^table::create{from	to
&	&amp^;
>	&gt^;
<	&lt^;
"	&quot^;
'	&apos^;}]
$Query[$query << host="www.x.ru"]
$Query[^Query.replace[$replace]]
$body[<?xml version="1.0" encoding="windows-1251"?>
<request>
	<query>$Query</query>
	<groupings>
		<groupby attr="d" mode="deep" groups-on-page="10" docs-in-group="1"/>
	</groupings>
</request>]
то всё ок.

Я думаю, что на taint влияет что-то постороннее, т.к. данные преобразования производяться внутри класса, который создаёт результирующий xdoc, который, в свою очередь, добавляется в выходной xdoc DOM'ом.
Может в этом дело...
Однако преобразуемые данные непосредственно в документ не попадают, они отсылаются на сервер (в другом проявлении проблемы - добавляются в БД).