Ошибка синтаксического анализа xml лишние данные после элемента документа

Прошу подсказать в чем именно ошибка: c4b23716ad16410ba3cbae3b0264a447.png

Ошибка синтаксического анализа XML: лишние данные после элемента документа
Адрес: www.st-par.ru/sitemap.xml
Строка 1, символ 124: …….

Перевод строки отсутствует или что-то еще?


  • Вопрос задан

    более трёх лет назад

  • 8232 просмотра

Правильный ответ написал bears в комментарии — не хватало открывающего тэга <sitemapindex>

Пригласить эксперта

Корневой элемент должен быть только один, а у вас на первом уровне <sitemap /> дублируется.


  • Показать ещё
    Загружается…

Сбер

Екатеринбург

от 150 000 до 200 000 ₽

10 июн. 2023, в 04:04

4000 руб./за проект

10 июн. 2023, в 01:43

6500 руб./за проект

10 июн. 2023, в 00:17

5000 руб./за проект

Минуточку внимания

<Testing Procedures="">blah blah </Testing Procedures>

Can’t have spaces in element names.

<Assessment Observations="" / Comments>blah blah</Assessment Observations / Comments>

Also this has multiple errors. Maybe you meant this ? :

<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <Order>1</Order>
    <Requirements>ABC</Requirements>
    <TestingProcedures foo=" ">blah blah </TestingProcedures>
    <Assessment Observations="/ Comments>blah blah"/>
    <Assessment Observations=" / Comments"/>
  </row>
</rows>

You have multiple errors. Can’t really tell what you are trying to do.

OK .xml 101:

XML doesn’t permit spaces in element names.

If you don’t close the element name you can specify attributes like this.

<foo bar="I am an attribute" lol="Me too"> Here you can specify text, or other elements </foo>

In addition if an element doesn’t contain another one , or a text you can use the shorthand notation

<foo attribute="bar"/>

I suggest you read some basic tutorial for this.

Прошу подсказать в чем именно ошибка: c4b23716ad16410ba3cbae3b0264a447.png

Ошибка синтаксического анализа XML: лишние данные после элемента документа
Адрес: www.st-par.ru/sitemap.xml
Строка 1, символ 124: …….

Перевод строки отсутствует или что-то еще?


  • Вопрос задан

    более трёх лет назад

  • 8077 просмотров

Правильный ответ написал bears в комментарии — не хватало открывающего тэга <sitemapindex>

Пригласить эксперта

Корневой элемент должен быть только один, а у вас на первом уровне <sitemap /> дублируется.


  • Показать ещё
    Загружается…

НТА

Санкт-Петербург

от 150 000 ₽

30 янв. 2023, в 19:05

50000 руб./за проект

30 янв. 2023, в 18:52

5000 руб./за проект

30 янв. 2023, в 17:53

50000 руб./за проект

Минуточку внимания


Решения вопроса 2

Rsa97

Rsa97

@Rsa97

Для правильного вопроса надо знать половину ответа

ЕМНИП, в XML может быть только один корневой элемент. Оберните свой список в один тэг

<offers>
  <offer>...</offer>
  <offer>...</offer>
</offers>

tacitus

У вас элементы должны быть в контейнере

<root>
<offer></offer>
<offer></offer>
<offer></offer>
</root>

Пригласить эксперта


Похожие вопросы


  • Показать ещё
    Загружается…

НТА

Санкт-Петербург

от 150 000 ₽

30 янв. 2023, в 19:05

50000 руб./за проект

30 янв. 2023, в 18:52

5000 руб./за проект

30 янв. 2023, в 17:53

50000 руб./за проект

Минуточку внимания

I am getting this error when I try to view my dynamically generated (PHP) XML document:

XML Parsing Error: junk after document element
Location: http://dev.leisurepublishing.com/vtc/master.xml.php
Line Number 17, Column 1:
^

I have googled and looked through the document and I can’t figure out what’s wrong, can someone help me spot the problem?

<?php

header("Content-type: text/xml");
require_once("admin/assets/db_connect.php");

echo "<?xml version="1.0" encoding="utf-8"?>"
?>

<master> 

<categories>
    <category>
        <gsm>GFoo</gsm>
        <category_id>1</category_id>
    </category>
    <category>
        <gsm>SFoo</gsm>
        <category_id>2</category_id>
    </category>
    <category>
        <gsm>MFoo</gsm>
        <category_id>3</category_id>
    </category>
</categories>

<region_codes>
    <code>
        <code_id>11000</code_id>
        <code_name>Central</code_name>
    </code>
    <code>
        <code_id>12000</code_id>
        <code_name>Eastern</code_name>
    </code>
    <code>
        <code_id>13000</code_id>
        <code_name>Western</code_name>
    </code>
    <code>
        <code_id>14000</code_id>
        <code_name>Northern</code_name>
    </code>
</region_codes>

<headers>
    <header>
        <header_id>1</header_id>
        <header_name>Featured A</header_name>
    </header>
    <header>
        <header_id>2</header_id>
        <header_name>Featured B</header_name>
    </header>
    <header>
        <header_id>3</header_id>
        <header_name>Featured C</header_name>
    </header>
</headers>

<advertisers>
    <partner>
        <name>Crestline</name>
        <file>crestline.asp</file>
        <logo>microsites/crestline/logo.jpg</logo>
        <blurb>blah blah blah.</blurb>
        <cat>3</cat>
        <region>15000</region>
        <header_type>1</header_type>
    </partner>
    <partner>
        <name>Example 2</name>
        <file>example2.asp</file>
        <logo>microsites/meeting/example2.jpg</logo>
        <blurb>example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 .</blurb>
        <cat>2</cat>
        <region>14000</region>
        <header_type>1</header_type>
    </partner>
    <partner>
        <name>Example 3</name>
        <file>example3.asp</file>
        <logo>microsites/meeting/example3.jpg</logo>
        <blurb>example 3 example 3 example 3 example 3 example 3 example 3 .</blurb>
        <cat>3</cat>
        <region>11000</region>
        <header_type>1</header_type>
    </partner>
  <partner>
    <name>Example 4</name>
    <file>example4.asp</file>
    <logo>microsites/meeting/example4.jpg</logo>
    <blurb>example 4 example 4 example 4 example 4 example 4 example 4.</blurb>
    <cat>1</cat>
    <region>11000</region>
    <header_type>1</header_type>
  </partner>
  <partner>
    <name>Example 5</name>
    <file>example5.asp</file>
    <logo>microsites/meeting/example5.jpg</logo>
    <blurb>example 5 example 5 example 5 example 5 example 5 example 5.</blurb>
    <cat>1</cat>
    <region>11000</region>
    <header_type>1</header_type>
  </partner>

  <partner>
    <name>Example 6</name>
    <file>example6.asp</file>
    <logo>microsites/meeting/example6.jpg</logo>
    <blurb>example 6 example 6 example 6 example 6 example 6 example 6.</blurb>
    <cat>2</cat>
    <region>11000</region>
    <header_type>2</header_type>
  </partner>
  <partner>
    <name>Example 7</name>
    <file>example7.asp</file>
    <logo>microsites/meeting/example7.jpg</logo>
    <blurb>example 7 example 7 example 7 example 7 example 7 example 7.</blurb>
    <cat>3</cat>
    <region>11000</region>
    <header_type>3</header_type>
  </partner>

  <partner>
    <name>Example 8</name>
    <file>example8.asp</file>
    <logo>microsites/meeting/example8.jpg</logo>
    <blurb>example 8 example 8 example 8 example 8 example 8 example 8.</blurb>
    <cat>1</cat>
    <region>11000</region>
    <header_type>3</header_type>
  </partner>

  <partner>
    <name>Example 9</name>
    <file>example9.asp</file>
    <logo>microsites/meeting/example9.jpg</logo>
    <blurb>example 9 example 9 example 9 example 9 example 9 example 9.</blurb>
    <cat>1</cat>
    <region>11000</region>
    <header_type>3</header_type>
  </partner>

  <partner>
    <name>Example 10</name>
    <file>example10.asp</file>
    <logo>microsites/meeting/example10.jpg</logo>
    <blurb>example 10 example 10 example 10 example 10 example 10 example 10.</blurb>
    <cat>1</cat>
    <region>12000</region>
    <header_type>2</header_type>
  </partner>

</advertisers>

</master>

<?php

require_once("admin/assets/db_disconnect.php");

?>

asked Sep 1, 2009 at 19:03

Marty's user avatar

Remove all PHP header tags except xml and add:

<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
</head>

ThinkingStiff's user avatar

ThinkingStiff

64.4k30 gold badges144 silver badges239 bronze badges

answered Dec 31, 2011 at 6:20

vishal's user avatar

Nevermind. I found that the path to the last require_once() was bad and when I fixed the path the parse error went away too.

answered Sep 1, 2009 at 19:06

Marty's user avatar

MartyMarty

2,5767 gold badges27 silver badges35 bronze badges

1

I am getting this error when I try to view my dynamically generated (PHP) XML document:

XML Parsing Error: junk after document element
Location: http://dev.leisurepublishing.com/vtc/master.xml.php
Line Number 17, Column 1:
^

I have googled and looked through the document and I can’t figure out what’s wrong, can someone help me spot the problem?

<?php

header("Content-type: text/xml");
require_once("admin/assets/db_connect.php");

echo "<?xml version="1.0" encoding="utf-8"?>"
?>

<master> 

<categories>
    <category>
        <gsm>GFoo</gsm>
        <category_id>1</category_id>
    </category>
    <category>
        <gsm>SFoo</gsm>
        <category_id>2</category_id>
    </category>
    <category>
        <gsm>MFoo</gsm>
        <category_id>3</category_id>
    </category>
</categories>

<region_codes>
    <code>
        <code_id>11000</code_id>
        <code_name>Central</code_name>
    </code>
    <code>
        <code_id>12000</code_id>
        <code_name>Eastern</code_name>
    </code>
    <code>
        <code_id>13000</code_id>
        <code_name>Western</code_name>
    </code>
    <code>
        <code_id>14000</code_id>
        <code_name>Northern</code_name>
    </code>
</region_codes>

<headers>
    <header>
        <header_id>1</header_id>
        <header_name>Featured A</header_name>
    </header>
    <header>
        <header_id>2</header_id>
        <header_name>Featured B</header_name>
    </header>
    <header>
        <header_id>3</header_id>
        <header_name>Featured C</header_name>
    </header>
</headers>

<advertisers>
    <partner>
        <name>Crestline</name>
        <file>crestline.asp</file>
        <logo>microsites/crestline/logo.jpg</logo>
        <blurb>blah blah blah.</blurb>
        <cat>3</cat>
        <region>15000</region>
        <header_type>1</header_type>
    </partner>
    <partner>
        <name>Example 2</name>
        <file>example2.asp</file>
        <logo>microsites/meeting/example2.jpg</logo>
        <blurb>example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 example 2 .</blurb>
        <cat>2</cat>
        <region>14000</region>
        <header_type>1</header_type>
    </partner>
    <partner>
        <name>Example 3</name>
        <file>example3.asp</file>
        <logo>microsites/meeting/example3.jpg</logo>
        <blurb>example 3 example 3 example 3 example 3 example 3 example 3 .</blurb>
        <cat>3</cat>
        <region>11000</region>
        <header_type>1</header_type>
    </partner>
  <partner>
    <name>Example 4</name>
    <file>example4.asp</file>
    <logo>microsites/meeting/example4.jpg</logo>
    <blurb>example 4 example 4 example 4 example 4 example 4 example 4.</blurb>
    <cat>1</cat>
    <region>11000</region>
    <header_type>1</header_type>
  </partner>
  <partner>
    <name>Example 5</name>
    <file>example5.asp</file>
    <logo>microsites/meeting/example5.jpg</logo>
    <blurb>example 5 example 5 example 5 example 5 example 5 example 5.</blurb>
    <cat>1</cat>
    <region>11000</region>
    <header_type>1</header_type>
  </partner>

  <partner>
    <name>Example 6</name>
    <file>example6.asp</file>
    <logo>microsites/meeting/example6.jpg</logo>
    <blurb>example 6 example 6 example 6 example 6 example 6 example 6.</blurb>
    <cat>2</cat>
    <region>11000</region>
    <header_type>2</header_type>
  </partner>
  <partner>
    <name>Example 7</name>
    <file>example7.asp</file>
    <logo>microsites/meeting/example7.jpg</logo>
    <blurb>example 7 example 7 example 7 example 7 example 7 example 7.</blurb>
    <cat>3</cat>
    <region>11000</region>
    <header_type>3</header_type>
  </partner>

  <partner>
    <name>Example 8</name>
    <file>example8.asp</file>
    <logo>microsites/meeting/example8.jpg</logo>
    <blurb>example 8 example 8 example 8 example 8 example 8 example 8.</blurb>
    <cat>1</cat>
    <region>11000</region>
    <header_type>3</header_type>
  </partner>

  <partner>
    <name>Example 9</name>
    <file>example9.asp</file>
    <logo>microsites/meeting/example9.jpg</logo>
    <blurb>example 9 example 9 example 9 example 9 example 9 example 9.</blurb>
    <cat>1</cat>
    <region>11000</region>
    <header_type>3</header_type>
  </partner>

  <partner>
    <name>Example 10</name>
    <file>example10.asp</file>
    <logo>microsites/meeting/example10.jpg</logo>
    <blurb>example 10 example 10 example 10 example 10 example 10 example 10.</blurb>
    <cat>1</cat>
    <region>12000</region>
    <header_type>2</header_type>
  </partner>

</advertisers>

</master>

<?php

require_once("admin/assets/db_disconnect.php");

?>

asked Sep 1, 2009 at 19:03

Marty's user avatar

Remove all PHP header tags except xml and add:

<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
</head>

ThinkingStiff's user avatar

ThinkingStiff

64.4k30 gold badges144 silver badges239 bronze badges

answered Dec 31, 2011 at 6:20

vishal's user avatar

Nevermind. I found that the path to the last require_once() was bad and when I fixed the path the parse error went away too.

answered Sep 1, 2009 at 19:06

Marty's user avatar

MartyMarty

2,5767 gold badges27 silver badges35 bronze badges

1

  • #1

Конец строки в XML

Суть такая. Мне нужно обработать вот эти данные:
http://www.timezero.ru/res.xml

Simplexml отказывается с ними работать, так как(как я понял) в конце строки возникает синтаксическая ошибка — лишние данные.

Как можно обойти эту ошибку, игнорировать конец строки и считать следующую?

  • #2

вообще то ошибка там другая

«unexpected start-tag (root element already specified)»

они тебе вообще невалидный XML отдают
1) отсутсвует XML делкарация
2) корневым узлом может быть только ОДИН тег

попробуй с помощью XMLReader обработать

  • #3

хм… в принципе понял, а возможно каким то образом решить эту проблему? просто там из-за меня никто ничего переделывать не будет =)

  • #4

Пусть $xml содержит твою невалидную хмлину. Тогда

$xml = ‘<?xml version=»1.0″?><root>’ . $xml . ‘</root>’;

  • #5

Мде. Это не то.

$xml = simplexml_load_file(‘http://www.timezero.ru/res.xml’);

Ошибка выдается при вызове этой функции, и она требует файл. Так что конкатинация здесь не катит =(

  • #6

Andrey48
блин, ну что за лентяи пошли, вынь мозг из ЖОПЫ…

PHP:

<?php
$xml = simplexml_load_string('<?xml version="1.0"?><root>' . file_get_contents('http://www.timezero.ru/res.xml') . '</root>');
var_dump($xml);
?>

  • #7

хех спсасибо!
Эта функция для меня открытие
file_get_contents

-~{}~ 13.03.09 10:09:

Я уже с ума схожу, никак мне этот сипплхмл не дается =)

<?php
$xml = simplexml_load_string(‘<?xml version=»1.0″?><root>’ . file_get_contents(‘http://www.timezero.ru/res.xml’) . ‘</root>’);
echo $xml->root->s[«shop»]; // ничего не выводит а по идее должен принять значение «New Moscow Shop»
?>

Хочу получить значение shop — никак не выходит! Помогите люди добрые =)

  • #8

Ошибка синтаксического анализа XML: лишние данные после элемента документа
Адрес: http://www.timezero.ru/res.xml
Строка 11, символ 1:<S time=»1236936002″ shop=»Berezka» xy=»-1/-1″ city=»New Moscow» >
^

  • #9

Alexandre Читай выше, с этим мы уже разобрались =)

  • #10

Александр? ты чего тупишь, топик прочитай уже??? ;) ладно???
там уже все сказали… и код готовый дали

Andrey48
еще раз ВЫНЬ МОЗГИ из ЖОПЫ
s — такого тега НЕТ
есть S

причем их там МНОГО
соответветсвенно из КАКОГО мануала ты взял что $xml->root->s[‘shop’] должен выводить чтото что тебе надо? PHP никогда зачатками телепатии не обладал

кроме того root вообще указывать не имеет смысла
он всегда один

PHP:

<?php
$xml = simplexml_load_string('<?xml version="1.0"?><root>' . file_get_contents('http://www.timezero.ru/res.xml') . '</root>');
foreach($xml->S as $S) {
	echo $S['shop'];
}
?>

КОРОЧЕ, оставь свои фантазии, иди и кури RTFM
я надеюсь это ТВОЕ ПОСЛЕДНЕЕ сообщение в этом топике

тут собрались люди не для того чтобы пересказывать тебе мануал

  • #11

АХАХА, Всю жизьнь меня бы так чихвостили и делали бы за меня работу =)
Сори за регистр — опечатался, а вот про root спасибо, просто в каком-то примере выдел что корневой элемент указывали…

  • #12

ну глядишь такими темпами ты еще спросишь «а что такое XPath»

  • #13

slach Я пару дней назад узнал что такое пхп, что ты от меня хочешь =)

ошибка синтаксического анализа XML

Приветствую всех друзей и читателей – Sozdaiblog.ru!

Сегодня Вы узнаете, как грубым, но эффективным способом починить в WordPress RSS ленту и избавиться от надоедливой ошибки синтаксического анализа XML.

Я уверен, что многие  из Вас при нажатии на оранжево-полосатую кнопку ни один раз наблюдали следующую картину:

К сожалению, я тоже сталкивался с этим чудным багом.

В то время из-за своей неопытности мне пришлось полдня провисеть в Интернете, бегая от сайта к сайту, дабы найти лекарство от этой заразы.

По себе знаю, что когда в Интернете целенаправленно пытаешься найти необходимую информацию, то хрена лысого она попадается. Будешь сутками лазить в поисках решения, пока со злости не бросишь это занятие.

Но, я то парень упёртый и на одном из сайтов всё-таки разыскал своеобразный «бычий способ», но реально работающий.

Итак.

Чтобы исправить ошибку синтаксического анализа XML, нужно немного поковыряться в ядре движка.

В корневой папке Вашего сайта необходимо найти каталог «wp-includes». В этом каталоге нам потребуется подкорректировать  следующие файлы:

1. feed-atom-comments.php

2. feed-atom.php

3. feed-rdf.php

4. feed-rss.php

5. feed-rss2-comments.php

6. feed-rss2.php

В первых двух файлах нужно удалить всё, что находится до блока:

<feed
        xmlns="http://www.w3.org/2005/Atom"
        xml:lang="<?php bloginfo_rss( 'language' ); ?>"
        xmlns:thr="http://purl.org/syndication/thread/1.0"
        <?php do_action('atom_ns'); do_action('atom_comments_ns'); ?>
>

В третьем до:

<rdf:RDF
        xmlns="http://purl.org/rss/1.0/"
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
        xmlns:admin="http://webns.net/mvcb/"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        <?php do_action('rdf_ns'); ?>
>

У четвёртого отсекаем все строчки до:

<rss version="0.92">

А у пятого и шестого до:

<rss version="2.0"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        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/"
        <?php do_action('rss2_ns'); do_action('rss2_comments_ns'); ?>
        >

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

Закончив все действия, не забудьте сохраниться.

Спустя некоторое время Ваша RSS лента чудесным образом заработает.

Единственная загвоздка в том, что при обновлении WordPress придётся пройти эту процедуру заново. На самом деле это просто и займёт 510 минут Вашего времени.

Если у Вас есть другие решения этой проблемы, буду очень рад увидеть их в комментариях.

На сегодня это всё. До скорых встреч…

С уважением, Денис Черников!

0 Пользователей и 1 Гость просматривают эту тему.

  • 12 Ответов
  • 5296 Просмотров

Не работает  XML версия Mapx  Joomla 3.4.1
Выдаёт ошибку:

Ошибка синтаксического анализа XML: лишние данные после элемента документа
Адрес: http://site.ru/index.php?option=com_xmap&view=xml&id=1
Строка 2, символ 1:<b>Notice</b>:  Undefined index: ru-RU in <b>/home/777/site/components/com_xmap/helpers/xmap.php</b> on line <b>48</b><br />
^
Что с этим делать?

Сама догадалась, надо в языки контента добавить русский. Всё заработало.

« Последнее редактирование: 10.04.2015, 14:02:44 от julyca »

Записан

Дополнительный вопрос: в Joomla 1.5 в карте сайта все ссылки были кликабельными, а в mapx ссылки обычные и сверху надпись: С этим XML-файлом не связана ни одна таблица стилей. Ниже показано дерево. Нормально ли это или надо что-то доделывать?

Он-лайн генераторы после парсинга сайта добавляют документы word в карту сайта, а стандартный компонент нет, т.к. их нет в меню. Имеет ли смысл создавать для этих документов отдельное скрытое меню?

« Последнее редактирование: 10.04.2015, 14:19:48 от julyca »

Записан

Тоже вопрос по X map в Joomla 3.4.1
При переходе на карту из пункта меню (да и из самого компонента X map), выдает:
This page contains the following errors:
error on line 2 at column 1: Extra content at the end of the document
Below is a rendering of the page up to the first error.

Что может быть? X map ставлю на сайты не впервые, вроди всё настроил, но…

Доброго всем!
При миграции с  Joomla 2.5.28 на  Joomla 3.4.1 следуя инструкциям удалил все сторонние приложения и Xmap в т.ч.
После удачной миграции установил mapx (com_xmap.rev.301) и возник тот же вопрос, что у apikron

При переходе из mapx на XML выдаёт ошибку:

This page contains the following errors:
error on line 2 at column 1: Extra content at the end of the document
Below is a rendering of the page up to the first error.

При переходе из mapx на HTML (равно как и из пункта меню) открывается вроде бы страница карты сайта (показывает вводный текст карты) а дерево не отображается.
Сторннего ни чего ещё не устанавливал только com_akeeba-4.2.0-core, akeebabackup-ru-RU-j25 и Tabs&Sliders — plg_jw_ts-v3.0.0_j3.x.
Язык, по умолчанию, русский правда пока от J2.5.6.

Подскажите пожалуйста, что исправить? Наверняка же пустяковое решение а знаний не хватает. Поиском пользовался…

Вот нашёл ещё такой же вопрос:

https://www.z-index.net/en/joomla-xmap/mapx-xmap-reloaded.html
чем это не нравится? переустановите, до этого сделав бекап файлов сайта и бд.

Это не нравится потому что выдает так же ошибку

This page contains the following errors:

error on line 2 at column 1: Extra content at the end of the document
Below is a rendering of the page up to the first error.

Тему 180 посетителей посмотрело уже, насущный вопрос, уважаемые профи, дайте наводку (подробную желательно)))

Обратитесь к разработчику расширения — баг это.
https://www.z-index.net/en/forum/support/xmap-plugins.html

b2z, Спасибо за участие))
Вот по ходу причина, на сайте разработчика нашёл только что:

Особенности!
Установите MapX поверх существующей установки, не удалить Xmap 2!
MapX заменяет установку!
MapX также удаляет старую устаревшие updateserver Informationen и добавляет свою updateserver .

А я при миграции удалял Xmap((. Буду пробовать восстанавливать backup(.

Не думаю, что в этом причина.

Разобрался.
ЯЗЫК контента RUS.

« Последнее редактирование: 21.12.2015, 13:12:41 от Beer »

Записан

Особенности!
Установите MapX поверх существующей установки, не удалить Xmap 2!
MapX заменяет установку!
MapX также удаляет старую устаревшие updateserver Informationen и добавляет свою updateserver .

А я при миграции удалял Xmap((. Буду пробовать восстанавливать backup(.

Увидел сколько просмотров темы стало…
А ведь мне тогда удалось решить вопрос.
Как и написано, не удалял Xmap при миграции и MapX заработала.

Автор kbaott, 28.06.2011 | Просмотров: 26 608 |

Здравствуйте, как видите блог немного обновился, стал веселее и ярче. Наконец-то у меня дошли руки и до блога, давно хотел добавить в функционал несколько фич. Ну с ними Вы разберетесь как-нибудь сами, а пока я расскажу о небольшой неприятности. Сегодня заметил, что не работает ни один фид на блоге. Вообще ни один: ни RSS 0.92, ни RSS 2.0 ни RDF и даже ATOM не захотел работать. На все мои вопросы браузер отвечал одним и тем же окном:

К слову сказать я, как правило, пользуюсь браузером Mozilla Firefox 4.0.1, очень редко Opera 11.11, ну совсем редко Internet Explorer 9 (ну даже не пользуюсь, а скорее тестирую). «Мозиллой» пользуюсь для работы и серфинга, а остальными двумя проверяю как выглядят мои сайты в них. Другими браузерами не пользуюсь так как не вижу в этом смысла, для проверки совместимости есть browsershots.org, а более старые версии просто неактуальны, всем не угодишь. Как по мне, так пользователю лучше обновить (как правило бесплатно) браузер, чем искать сайт который нормально отображается в его Опере пятилетней давности.  В общем, не в этом суть. А в том, что средствами Мозиллы я так и не смог просмотреть свои фиды. Сразу же пошел гуглить на эту тему. И нагуглил довольно много информации — о проблемах с RSS не писал только ленивый паралитик. Особо распылятся я не буду, а только кратко пробегусь по методам борьбы с ошибками RSS. Но сначала немного теории. Ленты RSS и им подобные написаны на языке XML, а не HTML, а XML никогда не прощает ни единой ошибки в коде, как это бывает в случае с HTML. В отличие от HTML, DOM анализатор обязан отказаться от разбора XML документа, если в документе есть ошибки. Поэтому проверять свой RSS на валидность просто необходимо. При попытке открыть ленту с багами в синтаксисе пользователь как правило видит ругню браузера. Поэтому ошибки в коде RSS Feed недопустимы. Для выявления этих ошибок есть Feed-валидаторы: http://feedvalidator.org и http://validator.w3.org, но о них позже.

Я как раз собрался «прожечь» свой фид через FeedBurner, который, как известно, не терпит ошибок в фидах: если он обнаруживает в ленте ошибку, то отказываться его принимать и говорить, что «Вы подсунули ему что угодно, но только не RSS-ленту». Я то собрался прожечь, а тут как назло эти ошибки. «Значит будем их исправлять!» — гордо подумал я и… осекся. Почему, понятнее станет в самом конце поста.

Расскажу о самых распространенных проблемах с фидами. Первой из них является «Ошибка синтаксического анализа XML». Часто советуют отключить в WordPress все плагины изменяющие параметры RSS, но это «wooden leg massage», это никогда не помогает. Далее, проблемой может быть наличие пустых строк после «?>» в php-файлах как отвечающих за фиды, так и в файлах движка и поагинов. Решением может быть плагин Fix RSS Feed 3.0 для WordPress, который помогает исправить ошибки RSS фидов такие, как: “Error on line 2: The processing instruction target matching “[хХ][мМ][LL]” is not allowed.” когда вы пытаетесь прожечь свой RSS Feed через FeedBurner, или ошибка “XML or text declaration not at start of entity” которая появляется в браузере FireFox, или ошибка, которая возникает в браузере Opera “XML declaration not at beginning of document” и т.д. Качаете плагин, устанавливаете любым удобным способом, активируете, теперь в админпанели в меню «Парамерты» вібираем «Fix RSS Feed», ставим переключатель в None (нечего с нас честных блоггеров за чепуху баксы требовать), нажимаем «Fix wordpress rss feed errors» (предварительно нужно установить chmod 777 на файл wp-blog-header.php). Если ошибки были, то они исправлены плагином. Если вдруг что пойдет не так, то можно восстановить все измененные файлы (Restore fix). Мне этот плагин не помог.

Вторая возможная проблема и ее решение: BOM (п>ї). Многие программы Windows (включая Блокнот) добавляют байты 0xEF, 0xBB, 0xBF в начале любого документа, сохраняемого в кодировке UTF-8. Поскольку любимый WordPress живет именно в этой кодировке, не часто, но в структуру его файлов эти символы попадают. Причем, они могут попадать не обязательно в файлы фидов, даже если они затесались в файлик какого-то плагина, RSS уже может показаться FeedBurner’у верхом непристойности. Выискать такие файлы вручную невозможно, поэтому нужно обратиться к средствам автоматизации, а именно к скрипту поиска ВОМ’ов — Find BOM. Разархивируйте в корень сайта (туда где лежит файл wp-config.php), далее в строке адреса из админки введите http://вашсайт/find_bom.php в итоге по окончанию сканирования файлов скрипт выдаст список негодяев, в теле которых живут ВОМ’ы. Удалить их теперь не сложно — выкачиваем на локальный компьютер, скачиваем актуальную версию редактора Notepad ++ (никаких Блокнотов!), открываем в нем найденные файлы, выбираем из меню «Кодировки» пункт «Преобразовать в UTF-8 без ВОМ» — это стопроцентно вылечит файл от ВОМ, сохраняем, заливаем обратно. И этот скрипт мне не помог, навязчивое желтое окно висело…

Третий вариант — «Тяжелая артиллерия». Заходим через FTP менеджер в каталог wp-includes, и открываем в любом редакторе, который корректно работает с кодировкой  UTF-8 без BOM (например  Notepad++), файлы: «feed-rss.php», «feed-rss2.php», «feed-rss2-comments.php», «feed-atom.php», «feed-rdf.php».В начале каждого из них находим строчку:

<code>&lt;?php
echo '&lt;?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'&gt;';
?&gt;</code>

и жестоко  удаляем ее. Изменения во всех указанных файлах ни к чему не привели: «(С) А воз и ныне там».

Четвертый вариант — «На грубость нарываешься». Наш путь снова лежит в каталог wp-includes, там берем и редактируем файлы feed-rss2.php и feed-rss2-comments.php. В файле убираем первые 13-14 строк (у кого как) вплоть до <rss version=»2.0″ …… К сожалению и это не помогло. Я уже начал отчаиваться и вдруг нахожу еще один способ.

Пятый способ — «Бредни пьяного саппорта». На каком-то забугорном сайте нашел я такой text:

What we need, is to add a little tip in specific files where wordpress feeds are made up before to be outputted to the browser on request. So, we go to fix this by opening the follow file, if the feed we want is RSS2 in wordpress (we will see all any other after in any case):
wp-includes/feed-rss2.php
open it with a text editor and read on the very top section, the following code:

header(‘Content-Type: text/xml; charset=’ . get_option(‘blog_charset’), true);
$more = 1;

To fix the feed on wordpress (but not only, it is obviously valid in, and for, any other feed or non feed contest where we can have the same necessity), add this tricky Php code immediately after:

$out = ob_get_contents();
$out = str_replace(array(“n”, “r”, “t”, ” “), “”, $input);
ob_end_clean();

Do the same almost with the comment’s feed file: feed-rss2-comments.php
Save/replace the feed-rss2.php and the feed-rss2-comments.php files modified in this way and enjoy your re-enabled feeds!

Короче, в файлы фидов нужно добавить три строчки кода, на некоторых сайтах басурманы кричат, что помогает. Мне… не помогло.

Сижу, я расстроенный, чуть не плачу. Потихоньку открываю один за одним файлы движка, просматриваю код плагинов, а что еще делать, гуглование… гугление… гугловство не помогло — одни и те же копипасты, ничего нового. Нервы на пределе. И тут я просто так, ради шутки авторизуюсьна FeedBurner’е и предлагаю ему скушать прожечь мой фид — и, о чудо, он его принимает и принимаеться предлагать мне всяческие настройки! На радостях пытаюсь своими куриными мозгами понять «а чё ваще?». Непонимание переходит в недоумение. Хватаю несколько фирменных фич FeedBurner’а, несу их на бог, проверяю — работают!

Иду на вышеуказанные фид-валидаторы, проверяю и… зарабатываю кнопку «This is a valid RSS feed«. То бишь это валидный RSS-канал, кроме одной ошибки и то из-за невалидного embed-кода электронного журнала, которые не играет никакой роли. Проверяю в «Опере» и «Ослике» — работает все и RSS, и ATOM. Думал долго. Оказалось нужна была кнопка браузера Mozilla Firefox — «Стереть недавнюю историю…«.

Лента заработала после применения одного из перечисленных способов лечения. Но вот после какого? И почему вылезла ошибка? Не скажет, уже наверное, никто. Как говориться, «за больной головой и рукам нет покоя». Все это оказалось очень напряжным, но зато я изучил все аспекты rss-терапии.

Вместо эпилога:

Я тут представил свою реакцию, если бы мне году в 1995 показали игровой процесс Battlefield 3 и сказали, что в 2012 году вместо нее я буду сидеть и играть на эмуляторе денди в танчики…

— 

Метки: atom, feedburner, rss, xml, ошибка
Писано 28.06.2011

  • #1

Конец строки в XML

Суть такая. Мне нужно обработать вот эти данные:
http://www.timezero.ru/res.xml

Simplexml отказывается с ними работать, так как(как я понял) в конце строки возникает синтаксическая ошибка — лишние данные.

Как можно обойти эту ошибку, игнорировать конец строки и считать следующую?

  • #2

вообще то ошибка там другая

«unexpected start-tag (root element already specified)»

они тебе вообще невалидный XML отдают
1) отсутсвует XML делкарация
2) корневым узлом может быть только ОДИН тег

попробуй с помощью XMLReader обработать

  • #3

хм… в принципе понял, а возможно каким то образом решить эту проблему? просто там из-за меня никто ничего переделывать не будет =)

  • #4

Пусть $xml содержит твою невалидную хмлину. Тогда

$xml = ‘<?xml version=»1.0″?><root>’ . $xml . ‘</root>’;

  • #5

Мде. Это не то.

$xml = simplexml_load_file(‘http://www.timezero.ru/res.xml’);

Ошибка выдается при вызове этой функции, и она требует файл. Так что конкатинация здесь не катит =(

  • #6

Andrey48
блин, ну что за лентяи пошли, вынь мозг из ЖОПЫ…

PHP:

<?php
$xml = simplexml_load_string('<?xml version="1.0"?><root>' . file_get_contents('http://www.timezero.ru/res.xml') . '</root>');
var_dump($xml);
?>

  • #7

хех спсасибо!
Эта функция для меня открытие
file_get_contents

-~{}~ 13.03.09 10:09:

Я уже с ума схожу, никак мне этот сипплхмл не дается =)

<?php
$xml = simplexml_load_string(‘<?xml version=»1.0″?><root>’ . file_get_contents(‘http://www.timezero.ru/res.xml’) . ‘</root>’);
echo $xml->root->s[«shop»]; // ничего не выводит а по идее должен принять значение «New Moscow Shop»
?>

Хочу получить значение shop — никак не выходит! Помогите люди добрые =)

  • #8

Ошибка синтаксического анализа XML: лишние данные после элемента документа
Адрес: http://www.timezero.ru/res.xml
Строка 11, символ 1:<S time=»1236936002″ shop=»Berezka» xy=»-1/-1″ city=»New Moscow» >
^

  • #9

Alexandre Читай выше, с этим мы уже разобрались =)

  • #10

Александр? ты чего тупишь, топик прочитай уже??? ;) ладно???
там уже все сказали… и код готовый дали

Andrey48
еще раз ВЫНЬ МОЗГИ из ЖОПЫ
s — такого тега НЕТ
есть S

причем их там МНОГО
соответветсвенно из КАКОГО мануала ты взял что $xml->root->s[‘shop’] должен выводить чтото что тебе надо? PHP никогда зачатками телепатии не обладал

кроме того root вообще указывать не имеет смысла
он всегда один

PHP:

<?php
$xml = simplexml_load_string('<?xml version="1.0"?><root>' . file_get_contents('http://www.timezero.ru/res.xml') . '</root>');
foreach($xml->S as $S) {
	echo $S['shop'];
}
?>

КОРОЧЕ, оставь свои фантазии, иди и кури RTFM
я надеюсь это ТВОЕ ПОСЛЕДНЕЕ сообщение в этом топике

тут собрались люди не для того чтобы пересказывать тебе мануал

  • #11

АХАХА, Всю жизьнь меня бы так чихвостили и делали бы за меня работу =)
Сори за регистр — опечатался, а вот про root спасибо, просто в каком-то примере выдел что корневой элемент указывали…

  • #12

ну глядишь такими темпами ты еще спросишь «а что такое XPath»

  • #13

slach Я пару дней назад узнал что такое пхп, что ты от меня хочешь =)

происходит некритическая ошибка (по поводу природы данной ошибки надо писать к СЗ) которая не позволяет корректно вывести xml (если вы посмотрите в коде получившейся страницы, то увидите там xml)

поэтому либо запрашивайте странице не через url, а через id . Например так /upage/23 или отключите в файле /config.ini, в секции debug вывод ошибок, тогда не будет notice и не будет ошибки в xml файле.

P.S. я бы советовал делать через id, чтобы все-таки видеть debug


Записан

Понравилась статья? Поделить с друзьями:
  • Ошибка синтаксического анализа xml корневой элемент не найден адрес
  • Ошибка синтаксического анализа xml корневой элемент не найден mozilla
  • Ошибка синтаксического анализа xml sitemap xml
  • Ошибка синтаксического анализа google earth
  • Ошибка синтаксический анализ пакета установка приложений