CXMLFileStream - починить или выкинуть поломаный велосипед

Рейтинг: 13.4510  
Новая
Предложил Семёнов Роман 20.09.2019 10:54:58

CXMLFileStream - починить или выкинуть поломаный велосипед

<?xml version="1.0" encoding="utf-8"?>
<realty-feed xmlns="http://webmaster.yandex.ru/schemas/feed/realty/2010-06">

  <generation-date>2019-08-28T15:53:40+03:00</generation-date>
  <offer internal-id="12345">
    <description>
        <description><![CDATA[
«Времена Года»
]]></description>
    </description>
  </offer>
  <offer internal-id="891011">
    <description><![CDATA[
<Времена Года>
]]></description>
  </offer>
</realty-feed>


не умеет парсить данные в CDATA

почините или выкиньте и перейдете на стандартный xmlreader - который есть даже на бесплатных хостингах

как вообще интеграцию с 1С продаете если такие глюки в базовых классах?

Рейтинг: 0  
Семёнов Роман 09.06.2020 11:32:51
год прошел с момента подачи заявки на исправление - ничего не поправили

но зато нашелся еще один косяк парсера

не может спарсить данные с валидного xml - когда в CDATA - присуствует непарный тег - то парсер ломается

например

<description><![CDATA[Продается <b>2 комнатная квартира с ремонтом с мебелью и сплитами. Дом находится на первом кольце района Гидростроителей, где хорошо развита инфраструктура и хорошая транспортная развязка.]]></description>
Рейтинг: 0  
Семёнов Роман 23.11.2020 18:35:57
а если "повезет" этот чудо-парсер может поломать страницу обновлений

/bitrix/admin/update_system_partner.php?lang=ru

          Система обновлений сторонних решений  
 
  Error parsing XML, unmatched tags DATA[Error]  Call to a member function __toArray() on bool (0) /var/www/vhosts/site.ru/httpdocs/bitrix/modules/main/classes/general/update_class.php:4114 #0: CUpdatesXML->GetArray    /var/www/vhosts/site.ru/httpdocs/bitrix/modules/main/classes/general/update_client_partner.php:2204 #1: CUpdateClientPartner::__ParseServerData    /var/www/vhosts/site.ru/httpdocs/bitrix/modules/main/classes/general/update_client_partner.php:1109 #2: CUpdateClientPartner::GetUpdatesList    /var/www/vhosts/site.ru/httpdocs/bitrix/modules/main/admin/update_system_partner.php:56 #3: require_once(string)    /var/www/vhosts/site.ru/httpdocs/bitrix/admin/update_system_partner.php:2