Меню

Ошибка разбора xml фатальная ошибка entityref expecting

   ВаликТР

15.07.15 — 14:58

Есть код

ЧтениеХТМЛ = Новый ЧтениеHTML();

Дом = Новый ПостроительDOM;    

ЧтениеХТМЛ.УстановитьСтроку(Тело);

Док = Дом.Прочитать(ЧтениеХТМЛ);

Получаем Док тип ДокументHTML/

А каким образом получить в результате ДокументDOM, чтобы потом xPath можно было использовать?

   Asmody

1 — 15.07.15 — 15:26

ЧтениеHTML = Новый ЧтениеHTML;

    ЧтениеHTML.ОткрытьФайл(ИмяФайла, «UTF-8»);

    ПостроительDOM = Новый ПостроительDOM;

    ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);

    ЗаписьXML = Новый ЗаписьXML;

    ЗаписьXML.УстановитьСтроку(«UTF-8»);

    ЗаписьDOM = Новый ЗаписьDOM;

    ЗаписьDOM.Записать(ДокументHTML.Тело, ЗаписьXML);

    ЧтениеXML = Новый ЧтениеXML;

    ЧтениеXML.УстановитьСтроку(ЗаписьXML.Закрыть());

    ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);

    Разименовыватель = Новый РазыменовательПространствИменDOM(ДокументDOM);

    ВыражениеXPath = «//tr/td[@class=»»s23″»]/../td[@class=»»s23″»] | //tr/td[@class=»»s23″»]/../td[@class=»»s11″»]»;

    РезультатXPath = ДокументDOM.ВычислитьВыражениеXPath(ВыражениеXPath, ДокументDOM, Разименовыватель);

   Asmody

2 — 15.07.15 — 15:28

и вы еще сомневаетесь, что платформу пишут «чужие для хищников»?

   ВаликТР

3 — 15.07.15 — 16:24

(1) Спасибо за помощь (дожить бы до ее конца!)

Но на этой строке

ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);

Ошибка разбора XML:  — [32,43]

Фатальная ошибка:

EntityRef: expecting ‘;’

Что нужно проверить?

   DmitrO

4 — 15.07.15 — 16:32

ПостроительDOM.Прочитать

может сразу принимать ЧтениеHTML

   DmitrO

5 — 15.07.15 — 16:33

аа, xpath.. сори туплю 🙂

   Лефмихалыч

6 — 15.07.15 — 16:53

(2) это на самом деле весьма по-русски — игла в яйце, яйцо в утке, утка в зайце. Традиции у нас крепки просто

   trad

7 — 15.07.15 — 16:55

(6) заяц в шоке

   Asmody

8 — 15.07.15 — 17:03

(3) Можно как-то почистить ДокументHTML.Тело, например, натравить на него НайтиНедопустимыеСимволыXML()

   Serginio1

9 — 15.07.15 — 17:19

   Гёдза

10 — 15.07.15 — 17:24

(1) А так разве нет

ЧтениеHTML = Новый ЧтениеHTML;

    ЧтениеHTML.ОткрытьФайл(ИмяФайла, «UTF-8»);

    ПостроительDOM = Новый ПостроительDOM;

    ДокументDOM = ПостроительDOM.Прочитать(ЧтениеHTML);

     Разименовыватель = Новый РазыменовательПространствИменDOM(ДокументDOM);

    ВыражениеXPath = «//tr/td[@class=»»s23″»]/../td[@class=»»s23″»] | //tr/td[@class=»»s23″»]/../td[@class=»»s11″»]»;

    РезультатXPath = ДокументDOM.ВычислитьВыражениеXPath(ВыражениеXPath, ДокументDOM, Разименовыватель);

   Asmody

11 — 15.07.15 — 17:26

(9) Там про шарп, а у нас про 1С.

   Asmody

12 — 15.07.15 — 17:31

(10) При чтении из ЧтениеHTML ПостроительDOM возвращает ДокументHTML. В документации про это очень мутно написано, проверено отладчиком.

   Serginio1

13 — 15.07.15 — 17:33

(11) Шарп элементарно к 1С прикручивается.

   Asmody

14 — 15.07.15 — 17:34

(13) Ваши костыли оставьте при себе.

   Serginio1

15 — 15.07.15 — 17:37

(14) Активно ими пользуюс, а вы инвалиды пилите ПостроительDOM , золотом уже пахнет

   Котокот

16 — 15.07.15 — 17:39

А какая разница между ДокументDOM и ДокументHTML?

   Asmody

17 — 15.07.15 — 18:02

(15) Ненативно — это раз, необходимость тащить ради пары функций полгигабайта .NET со своими тараканами — это два.

   Serginio1

18 — 15.07.15 — 18:09

(17) Вообще то Microsoft.NET почти 2 ГБ. Но он уже установлен на всех Win7 и выше.

А зачем мне натив? У меня линуксов нет и не придвидется.

Но я на раз сделаю кучу вещей, на что 1С не способен как в 7ке так и в 8 ке.

   Котокот

19 — 15.07.15 — 20:44

Я почему спрашивал в чем разница. Сам вот так делаю:

    ЧтениеHTML        = Новый ЧтениеHTML;

    ЧтениеHTML.УстановитьСтроку(СтрокаШаблона.ШаблонТекстHTML);

    ПостроительDOM    = Новый ПостроительDOM;

    ШаблонDOM        = ПостроительDOM.Прочитать(ЧтениеHTML);

Цитата из СП:

ПостроительDOM.Прочитать (DOMBuilder.Read)

ПостроительDOM (DOMBuilder)

Прочитать (Read)

Синтаксис:

Прочитать(<ИсточникДанныхXML>)

Параметры:

<ИсточникДанныхXML> (обязательный)

Тип: ЧтениеУзловDOM, ЧтениеFastInfoset, ЧтениеXML; ЧтениеHTML.

Объект чтения данных XML или чтения данных HTML.

Возвращаемое значение:

Тип: ДокументDOM.

Описание:

Создает документ DOM. Производит чтения документа XML из источника данных XML.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Примечание:

Параметры DOM в созданный документ не переносятся.

Там написано, что возвращаемое значение — ДокументDOM. В Отладчике смотрю — у меня ДокументHTML. Все в нем нормально разбирается, изменяется и т.д. И никаких неудобств не испытываю. Так может я чего-то не знаю? Может мне с DOM будет лучше? Объясните нубу, ЧЯДНТ?

   Котокот

20 — 15.07.15 — 20:46

Может у меня не DOM а HTML потому что в тексте документа в начале стоит

<!DOCTYPE html PUBLIC «-//W3C//DTD HTML 4.0 Transitional//EN»>?

И все-таки, в чем разница то?

   ВаликТР

21 — 15.07.15 — 23:16

(20) ДокументHTML в ДокументDOM не работает с xPath. Поэтому мне и нужен ДокументDOM.

   ВаликТР

22 — 15.07.15 — 23:18

ПостроительDOM.Прочитать(ЧтениеHTML) возвращает ДокументHTML

ПостроительDOM.Прочитать(ЧтениеXML) возвращает ДокументDOM

  

Котокот

23 — 16.07.15 — 11:00

(22) А если ему в заголовке подменить html на xml?

Содержание:

1.       XML – расширяемый язык разметки

2.       Устранение Ошибки разбора XML в 1С

3.       «Обход» Ошибки разбора XML в 1С   

1.    XML – расширяемый язык разметки

В данной статье речь пойдёт о причинах возникновения фатальной ошибки «Ошибка разбора XML» и способах устранения данной неполадки. Также будет дана инструкция не по устранению, но «обходу» ошибки, то есть действиям на опережение.

XML (с английского – extensible markup language – расширяемый язык разметки) – это язык разметки, который рекомендует Консорциум Всемирной паутины. Обычно язык разметки XML служит для описания документации, соответствующего типа, а также описывает действия соответствующих процессоров. Расширяемый язык разметки имеет довольно простой синтаксис, поэтому используется по всему миру, чтобы создавать и обрабатывать документацию программным способом. Он создавался именно для использования в Интернете. XML назвали именно расширяемым языком разметки, так как в нём нет фиксации разметки, которая содержится внутри документа, а именно: программист может создавать любую разметку, а ограничения будут встречаться лишь в синтаксисе.

2.    Устранение Ошибки разбора XML в 1С

«Ошибка разбора XML» возникает исключительно в тонком клиенте 1С. Также стоит отметить, что «Ошибка разбора XML» также довольна схожа с ошибкой по формату потока, которая возникает в толстом клиенте. Обычно в 1С «Ошибка разбора XML» возникает по причине наличия кэша метаданных. И если очистить кэш, то ошибка будет устранена. Выглядит окно с ошибкой, а также окно с комментариями от технической поддержки следующим образом:

Рис. 1 Окно Ошибки разбора XML в 1С

XML данные читаются по потокам, так что в каждый из моментов времени объект «сосредоточен» в некотором узле XML. Из-за этого также может возникать фатальная ошибка «Ошибка разбора XML». Для того чтобы её устранить, можно вызвать функцию «ИсключениеЧтенияXml», как показано на скриншоте примера ниже:

Рис. 2 Вызов функции ИсключениеЧтенияXML для устранения Ошибки разбора XML в 1С  

3.    «Обход» Ошибки разбора XML в 1С

Данные два способа (очистка кэша метаданных и функция «ИсключениеЧтенияXml») – не все возможные варианты устранения ошибки разбора XML. Далее рассмотрим нестандартный подход, который позволит избежать ошибки еще до её возникновения.

Для наглядности будем работать в конфигурации 1С:Бухгалтерия предприятия, одной из наиболее распространенных программ фирмы 1С. У многих людей, которые пользуются программой 1С:Отчётность появляются неполадки при попытках открыть данные/файлы от налоговой. Чтобы открыть такой файл повторяем следующие действия:

·        Переходим по пути: «Настройки 1С:Отчётности → Журнал обмена с контролирующими органами», как показано на скриншоте ниже:

Рис. 3 Настройка 1С Отчетности

·        Далее кликаем на «Запросы» и выделяем ту выписку, которую не было возможности открыть из-за ошибки, как продемонстрировано на скриншоте ниже:

Рис. 4 Выбор выписки с Ошибкой разбора XML в 1С

·        Обращаем внимание на стадию отправки, которая располагается внизу этого сообщения, и кликаем два раза на зелёный круг:

Рис. 5 Стадия отправки документа с Ошибкой разбора XML в 1С

·      Появляется транспортное сообщение, в нём кликаем на «Выгрузить» и выбираем папку, куда необходимо провести выгрузку, после чего сохраняем данный файл. Пробуем открыть его, при помощи любого из графических редакторов, который может поддерживать формат PDF, как показано на скриншоте ниже:

Рис. 6 Результат обхода Ошибки разбора XML в 1С

·        Всё успешно открылось, а ошибка даже не успела возникнуть.

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Описание ошибки:
Попеременно на рабочих местах у пользователей стала возникать: Ошибка разбора XML: -[1,202] Фатальная ошибка: expected ‘>’ на рабочих местах клиента. Платформа 1С: Предприятие 8.2.19.80. Конфигурация 1С: Комплексная автоматизация 8, ред. 1.1. Режим работы клиент-серверный.

Найденные решения:

Как уже было отмечено попеременно возинкала ошибка на различных рабочих местах пользователей. Попытки воспроизвести ошибку на других рабочих местах под теми же пользователями ошибку не воспроизводили.

1c 8 1с Ошибка разбора XML: -[1,202] Фатальная ошибка: expected '>'

1c 8 1с Ошибка разбора XML: -[1,] Фатальная ошибка: expected '>'

Это наводило мысли о том, что ошибка словно «привязана» к рабочему месту пользователя и только к этому пользователю. У клиента часто возникали ситуации с отключением электроэнергии. А так же было настроено ночное архивирование, которое аварийно завершало не закрытие сеансы работы с 1С. Эти факты натолкнули на мысли о том, что дело в ошибках, которые накопились во временных файлах. А данная проблема «лечится» достаточно просто: удаление базы из списка баз с последующим добавлением.

1с 8 удаление базы из списка баз, добавление базы в список баз для удаление ошибки временных файлов пользователя

При удалении базы временные файлы пользователя, связанные с базой удалются. После добавления базы и работы с ней ошибки себя не проявляли. Как было отмечено выше, накопление подобных ошибок возможно в условиях частого аварийного заверешения работы 1С.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

01-11-2016

Журавлев А.С.
(www.azhur-c.ru)

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка разбора xml фатальная ошибка attributes construct error
  • Ошибка разбора xml фатальная ошибка 1с розница