Получение ошибки синтаксического анализа XML в ColdFusion. Может ли возвращенный пакет быть проверен? - PullRequest
6 голосов
/ 08 апреля 2010

Иногда появляется ошибка на определенной странице CF. Оскорбительный код указан ниже. Очень странно, потому что, когда я перезагрузил CF, он ушел. Можно ли проверить XML через XMLValidate, чтобы этого не случилось?

Это какая-то ошибка CF, так как ошибка исчезла после перезагрузки CF? У меня такое чувство, что в какой-то момент ошибка снова появится.

Произошла ошибка при синтаксическом анализе документа XML. Тип элемента "meta" должен заканчиваться соответствующим конечным тегом "".

<cfhttp method="get" url="http://bs.mysite.com/webservice/rec/get.sbs?customerId=345S4BE8x&itemId=#product_id#&number=20&ruleId=#product.location_tab_accessories#">

<cfset result = xmlParse(cfhttp.FileContent)>
<cfset recs = xmlSearch(result, "/result/thsite/site/itemId")>

1 Ответ

9 голосов
/ 08 апреля 2010

Вы можете использовать XmlValidate () для проверки XML-документа по DTD или схеме. XmlParse () сам проверяет документ и выдает ошибку, если XML не правильно сформирован. Он также поддерживает параметр валидатора с CF7. Используйте cftry / cfcatch для обработки исключения.

Полученное вами сообщение об ошибке означает, что вы получили не ожидаемый XML-документ, а HTML-страницу с незакрытыми метатегами. Возможно, это может быть страница с ошибкой или другая html-страница, на которую вы были перенаправлены.

Что-то изменилось с DNS / IP целевого URL? Cfhttp выполняет DNS-кэширование (это делает базовая JVM), и это может привести к странным эффектам, которые вы испытали здесь Перезапуск ColdFusion очищает кэш, URL-адрес снова разрешается, и ваш запрос будет успешным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...