Ошибка синтаксического анализа xml некорректно строка 1 символ 1

Использую XMLHttpRequest языка JavaScript. Загружаю текст из локального файла. Всё грузится и работает отлично, но Firefox в консоль выдаёт ошибку:

Ошибка синтаксического анализа XML: ошибка синтаксиса
Адрес: file:///C:/путь_к_файлу/название_файла.glsl
Строка 1, символ 1:

Понятно что XMLHttpRequest задуман для XML файлов и проверяет их синтаксис, а у меня файл с текстом шейдера где нет тегов вообще.
Можно в JavaScript коде как то отловить эту ошибку или отключить в самом Firefox?

Воспроизвести ошибку можно так

ajax = function (url) {
  xhr = new XMLHttpRequest()
  xhr.open('GET', url, false)
  xhr.send()
  return xhr.responseText
}
console.log(ajax('shader.glsl'))


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

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

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

Узнал что есть уже во всю используемый Метод fetch: замена XMLHttpRequest прочитал о нем эту статью, понял что он работает на Promise тут почитал, которые нужны для асинхронного кода которого я так боялся из-за катострофической нечитаемости по сравнению с синхронным кодом с его колбеками и промисами, решил всё таки посмотреть в чем вообще различается синхронный и асинхронный код, попал на статью JavaScript: методы асинхронного программирования обрадовался параграфу Async/await в самом конце. Понял что сегодня не нужны не какие коллбэки, промисы и их цепочки с страшными реализациями функций. Сегодня есть только Async и Await, в глазах никаких колбеков, промисов и неразберихи. Ты просто ставишь Await перед той переменной которую нужно подождать и Async перед функцией в которой эта переменная и она остаётся на том же месте где и синхронный код. После этого желание использовать ещё когда либо XMLHttpRequest отпало напрочь.
Сделал код асинхронным, подстроил fetch под Async и Await, всё, ajax в пару строчек.

async_ajax = async function (ссылка) {
  return (await fetch(ссылка).catch(function(e) { console.log(e.message) })).text()
}

Красота

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

Посмотрите какие заголовки выдает сервер при отдаче файла shader.glsl, скорее всего достаточно исправить их.


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

10 июн. 2023, в 04:04

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

10 июн. 2023, в 01:43

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

10 июн. 2023, в 00:17

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

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

Let’s start with:
Let’s do a full clean re-install;

Note: Firefox comes in three or more folders on all computers. They are;

Maintenance: (Programs Folder) <Windows Only>
Firefox itself: (Programs Folder)
And two folders in the profile of each user on the computer
for each Firefox profile for that user.

If you remove the Firefox folder, the user profiles would not be affected.


Download Firefox For All languages And Systems {web link}

Firefox ESR; Extended Support Release {web link}

Beta, Developer, Nightly versions
https://www.mozilla.org/en-US/firefox/channel/desktop/

Install Older Version Of Firefox {web link}

Save the file. Then Close Firefox.

Using your file browser, open the Programs Folder on your computer.

Windows: C:Program Files
C:Program Files (x86) Note: Check Both Folders

Mac: Open the «Applications» folder.
https://support.mozilla.org/en-US/kb/how-download-and-install-firefox-mac

Linux: Check your user manual.
If you installed Firefox with the distro-based package
manager, you should use the same way to uninstall it.
See Install Firefox on Linux;
https://support.mozilla.org/en-US/kb/install-firefox-linux

If you downloaded and installed the binary package
from the Firefox download page, simply remove the
folder Firefox in your home directory.
http://www.mozilla.org/firefox#desktop
++++++++++++++++++++++++++++
Look for, and remove any Mozilla or Firefox program folders.
Do not remove the Mozilla Thunderbird folder if there is one.

Do Not remove any profile folders.

After rebooting the computer, run a registry scanner
if you have one. Then run the installer.
+++++++++++++++++++++++++++
If there is a problem, start your Computer in safe mode and try again.

How to Start all Computers in Safe Mode; {web link}
Free Online Encyclopedia

у меня приходит от клиента запрос на удаления пакета id (то есть удаление нескольких записей в базе данных).

rest endpoint

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    @PostMapping("users/delete")
    public ResponseEntity<Object> deleteUserListByIds(
            @Valid @RequestBody List<UserDto> ids,
            BindingResult bindingResult) {
 
        if (bindingResult.hasErrors()) {
            throw new RuntimeException("Invalid Input Parameters");
        }
 
        usersDeleteService.deleteListUsersByIds(ids);
 
        return ResponseEntity.ok().build();
    }

dto

Java
1
2
3
4
5
6
public class UserDto {
 
    private String id;
 
    private String firstName;
...

метод сервиса занимается обработкой задачи

Java
1
2
3
4
5
6
7
    @Transactional
    @Override
    public void deleteListUsersByIds(List<UserDto> ids) {
 
        List<User> usersIds = userMapper.convertUserDtoListToUserList(ids);
        userRepository.deleteInBatch(usersIds);
    }

маппер четко без ошибок преобразует long в string и обратно.

Java
1
2
3
4
5
6
7
8
9
/*A table for users*/
@Entity
@Table(name = "users")
public class User {
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
...

Запрос обрабатывается и я получаю от сервера ответ 200 если пользуюсь для отладки Postman.

Когда я использую для удаления выбранных строк браузер, то ответ сначала получаю 200.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*Отправка данных на сервер, методом POST
        * sourceDataJson - источник данных, в формате JSON;
        * uri - адрес ресурса;
        * processingValueOfUri(uri) - проверяет, что введен url, если
        * url отсутствует, тогда выбрасывается exception */
        function sendDataWithAjax(uri, sourceDataJson) {
 
            processingValueOfUri(uri);
            var jsonObj = JSON.stringify(sourceDataJson);
 
            $.ajax({
                type: "POST",
                url: uri,
                data: jsonObj,
                headers: {
                    'Content-Type': 'application/json'
                },
                success: function () {
 
                    getDataFromTable(options.urlGetData, '.' + nameTable);
                },
                error: function (error) {
 
                    //applyStyleForHeadContainerOfErr('.' + divErrMessage);
                    messageErr(error, '.' + divErrMessage);
                }
            });
        }

но во время работы с Ajax , когда отработает свойство success, данные запрашиваются и спокойно снова рисуется таблица.

Но в этот момент появляется ошибка

переход по ссылке показывает json , который отправлен сервером

Javascript
1
{"errorCode":400,"errorMessage":"Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "delete""}

как эту ошибку можно исправить и что это такое

Ошибка синтаксического анализа XML: корневой элемент не найден

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

  1. Главная
  2. Форумы
  3. Техподдержка Drupal
  4. Решение проблем

Главные вкладки

  • Просмотр(активная вкладка)
  • Реакции

Добрый день.
Сайт на drupal 5.12. установлен модуль xml sitemap 5.x-1.6.
При попытке открыть карту сайта получаю следующее:

Ошибка синтаксического анализа XML: элемент не найден
Адрес: http://www.mysite/sitemap.xml
Строка 1, символ 1:
^

Что не так?

  • Drupal5

Лучший ответ

Пишу только для тех, кто когда либо еще встретят эту ошибку, так как сам сегодня попался под неё.
Ошибку не удалось ликвидировать просто переустановкой модуля, оказалось из за того, что в корне сайта лежал файл «sitemap.xml» в файле не было никаких записей, видимо ошибка выдавалась из за конфликта между этим статическим файлом и тем, который формировался при обращении по стандартному адресу мой-сайт.ру/sitemap.xml
После удаления файла, ошибка сразу исчезла!

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

Здравствуйте, как видите блог немного обновился, стал веселее и ярче. Наконец-то у меня дошли руки и до блога, давно хотел добавить в функционал несколько фич. Ну с ними Вы разберетесь как-нибудь сами, а пока я расскажу о небольшой неприятности. Сегодня заметил, что не работает ни один фид на блоге. Вообще ни один: ни 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-терапии.

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

Хотел вызвать у людей положительные эмоции… А вызвал панику, проституток, наряд полиции и сатану.

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

@vkapas

Если создать заметку в формате TEXT Document, а затем сменить тип на XHTML (заметка при этом может быть пустой), — появляется ошибка:

Ошибка синтаксического анализа XML: некорректно
Адрес: file:///home/user/.thunderbird/xxxyyyzzz.default/ZNotes/86449EA1C68546388C5C8212D5D24ABA/misc/Название документа.txt
Строка 1, символ 1:
(далее идёт первая строчка заметки, если заметка не пуста)

Ubuntu 12.04.5, Thunderbird 31.6, ZNotes 0.9.24.

@Akman

Так и должно быть — это не баг, а фича :)
Смена типа не преобразует заметку из одного типа в другой, а указывает на то, как будет интерпретироваться содержимое заметки — как text/plain или application/xhtml+xml документ.
Любой xhtml документ может рассматриваться как text документ, но обратное не верно.
Если в текстовую заметку ввести текст, являющийся xhtml документом, то после смены типа все будет ок.
Cоздайте пустую application/xhtml+xml заметку и смените тип на text/plain и увидите корректный xhtml документ в текстовом виде.

I recently migrated an ASP site from my dev machine to a live server. All the pages except my FAQ page works just fine, but my FAQ brings up:

XML Parsing Error: no element found
Location: http://geniusupdate.com/GSHelp/faq.aspx
Line Number 1, Column 1:

The only changes I have made were changing the connection string on my SQL page from local to the string specified by my hosting service. Any tips on what I can do to find the root of this issue?

here is the source to my FAQ page:

<%@ Page Language="VB" MasterPageFile="~/theMaster.master" AutoEventWireup="false" CodeFile="faq.aspx.vb" Inherits="faq" Title="Untitled Page" %>
<%@ Import Namespace="sqlstuff" %>
<%@ Import Namespace="functions" %>

<asp:Content ContentPlaceHolderID="page_title" ID="theTitle" runat="server">
    FAQ</asp:Content>
<asp:Content ContentPlaceHolderID="column1_title" ID="col1Title" runat="server">
    <%=faqPageTitle(Request.QueryString("cid"))%></asp:Content>
<asp:Content ContentPlaceHolderID="column1" ID="columnContent" runat="server">

     <p>Click on a question to expand it to see the answer!</p>
     <p><%  If cID >= 0 Then
                Dim theFaq As New List(Of faqContent), iterate As Integer = 0
                theFaq = sqlStuff.getFaqs(cID)
                For Each oFaq As faqContent In theFaq
                    Response.Output.WriteLine("<h4 id={0} class={1}>Q: {2}</h4>", _
                                                 addQuotes("gsSwitch{0}-title", iterate), _
                                                 addQuotes("handCursor"), _
                                                 oFaq.Content.Question)
                    Response.Output.WriteLine("<div id={0} class={1}><string>A: </strong>{2}</div>", _
                                                 addQuotes("gsSwitch{0}", iterate), _
                                                 addQuotes("gsSwitch"), _
                                                 oFaq.Content.Answer)

                    iterate += 1
                Next
            Else
                Response.Output.Write("Here you can find a lot of information about eTHOMAS and how to expedite your office tasks.{0}", ControlChars.NewLine)
            End If
    %></p>
    <script type="text/javascript">
        var gsContent = new switchcontent("gsSwitch", "div")
        var eID = '<%= expandID %>'
        gsContent.collapsePrevious(true) // TRUE: only 1; FALSE: any number
        gsContent.setPersist(false)
        if(eID >= 0){
            gsContent.defaultExpanded(eID) // opens the searched FAQ
            document.getElementById('gsSwitch' + eID + '-title').scrollIntoView(true) // scrolls to selected FAQ
        }        
        gsContent.init()
    </script>
</asp:Content>
<asp:Content ContentPlaceHolderID="subcolumn_right_title" ID="rSideColTitle" runat="server"></asp:Content>
<asp:Content ContentPlaceHolderID="subcolumn_right" ID="rSideColContent" runat="server"></asp:Content>
<asp:Content ContentPlaceHolderID="subcolumn_left_title" ID="lSideColTitle" runat="server"></asp:Content>
<asp:Content ContentPlaceHolderID="subcolumn_left" ID="lSideColContent" runat="server"></asp:Content>
<asp:Content ContentPlaceHolderID="sidecolumn_title" ID="sideColtitle" runat="server">
</asp:Content>
<asp:Content ContentPlaceHolderID="sidecolumn" ID="sideCol" runat="server">
    <%  If cID >= 0 Then
            Response.Write(constructFaqSideMenu(CInt(Request.QueryString("cid"))))
        Else
            Response.Write(constructFaqSideMenu())
        End If
    %>
</asp:Content>

I found this on another forum link:

Well, it appears it’s a bit of both. The message is generated by Firefox, but caused by the framework. For some reason, .NET generates a response type of «application/xml» when it creates an empty page. Firefox parses the file as XML and finding no root element, spits out the error message.

IE does not render the page, period. This is where the XML is coming from.

Here is the constructFaqSideMenu() function:

Public Shared Function constructFaqSideMenu(ByVal oSelID As Integer) As String
    Dim oCatList As New List(Of faqCategory)
    Dim oRet As New StringBuilder
    Dim iterate As Integer = 1, extraTag As String = ""

    oCatList = sqlStuff.getFaqCats

    oRet.AppendFormattedLine("<ul id={0}>", addQuotes("submenu"))
    oRet.AppendFormattedLine("    <li id={0}>FAQ Categories</li>", addQuotes("title"))
    For Each category As faqCategory In oCatList
        If iterate = oSelID Then
            extraTag = String.Format(" id={0}", addQuotes("active"))
        Else
            extraTag = ""
        End If
        oRet.AppendFormattedLine("    <li{0}><a href={1}>{2}</a></li>", extraTag, addQuotes("faq.aspx?cid={0}", iterate), StrConv(category.Title,         VbStrConv.ProperCase))
        iterate += 1
    Next
    oRet.AppendLine("</ul>")

    Return oRet.ToString
End Function

And here is the source of the blank page IE returns:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>

  1. Главная
  2. Форумы
  3. Техподдержка Drupal
  4. Решение проблем

Главные вкладки

  • Просмотр(активная вкладка)
  • Реакции

Добрый день.
Сайт на drupal 5.12. установлен модуль xml sitemap 5.x-1.6.
При попытке открыть карту сайта получаю следующее:

Ошибка синтаксического анализа XML: элемент не найден
Адрес: http://www.mysite/sitemap.xml
Строка 1, символ 1:
^

Что не так?

  • Drupal5

Лучший ответ

Пишу только для тех, кто когда либо еще встретят эту ошибку, так как сам сегодня попался под неё.
Ошибку не удалось ликвидировать просто переустановкой модуля, оказалось из за того, что в корне сайта лежал файл «sitemap.xml» в файле не было никаких записей, видимо ошибка выдавалась из за конфликта между этим статическим файлом и тем, который формировался при обращении по стандартному адресу мой-сайт.ру/sitemap.xml
После удаления файла, ошибка сразу исчезла!

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