Ошибка при разборе entityname

I have found that there exists "&" in my code that’s why error is showing

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(dsExport.Tables[0].Rows[i]["SubmissionData"].ToString());

The «&» is there in submissiondata . How can I remove the special characters so that the error doesn’t show again ?

Thanks in advance

Microsoft DN's user avatar

Microsoft DN

9,70610 gold badges51 silver badges71 bronze badges

asked Jul 17, 2013 at 14:16

user2265679's user avatar

3

Replace your "&" with "&"

HamZa's user avatar

HamZa

14.7k11 gold badges54 silver badges75 bronze badges

answered Jul 17, 2013 at 14:22

Microsoft DN's user avatar

Microsoft DNMicrosoft DN

9,70610 gold badges51 silver badges71 bronze badges

2

& is not an illegal XML character. This is not your problem. You need to log the XML that you receive, before you ask anyone about your problem. You probably need to

HTTPUtility.HTMLDecode(yourformdata)

But I smell SQL injection a long way.

answered Jul 17, 2013 at 14:27

Pål Thingbø's user avatar

Pål ThingbøPål Thingbø

1,2111 gold badge17 silver badges17 bronze badges

2

Try:

XmlDocument xmlDoc = new XmlDocument();
string str  = dsExport.Tables[0].Rows[i]["SubmissionData"].ToString();
str = System.Web.HTTPUtility.HTMLDecode(str);
xmlDoc.LoadXml(str);

answered Jul 17, 2013 at 14:38

Pål Thingbø's user avatar

Pål ThingbøPål Thingbø

1,2111 gold badge17 silver badges17 bronze badges

4

Sorry I am replying too late but I hope it will help some other guys. This issue is because of the encoding of special characters in XML. Please find the below link which may help you https://support.google.com/checkout/sell/answer/70649?hl=en
Thanks,
Vijay Sherekar

answered Oct 24, 2013 at 12:29

Vijay's user avatar

I have found that there exists "&" in my code that’s why error is showing

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(dsExport.Tables[0].Rows[i]["SubmissionData"].ToString());

The «&» is there in submissiondata . How can I remove the special characters so that the error doesn’t show again ?

Thanks in advance

Microsoft DN's user avatar

Microsoft DN

9,70610 gold badges51 silver badges71 bronze badges

asked Jul 17, 2013 at 14:16

user2265679's user avatar

3

Replace your "&" with "&"

HamZa's user avatar

HamZa

14.7k11 gold badges54 silver badges75 bronze badges

answered Jul 17, 2013 at 14:22

Microsoft DN's user avatar

Microsoft DNMicrosoft DN

9,70610 gold badges51 silver badges71 bronze badges

2

& is not an illegal XML character. This is not your problem. You need to log the XML that you receive, before you ask anyone about your problem. You probably need to

HTTPUtility.HTMLDecode(yourformdata)

But I smell SQL injection a long way.

answered Jul 17, 2013 at 14:27

Pål Thingbø's user avatar

Pål ThingbøPål Thingbø

1,2111 gold badge17 silver badges17 bronze badges

2

Try:

XmlDocument xmlDoc = new XmlDocument();
string str  = dsExport.Tables[0].Rows[i]["SubmissionData"].ToString();
str = System.Web.HTTPUtility.HTMLDecode(str);
xmlDoc.LoadXml(str);

answered Jul 17, 2013 at 14:38

Pål Thingbø's user avatar

Pål ThingbøPål Thingbø

1,2111 gold badge17 silver badges17 bronze badges

4

Sorry I am replying too late but I hope it will help some other guys. This issue is because of the encoding of special characters in XML. Please find the below link which may help you https://support.google.com/checkout/sell/answer/70649?hl=en
Thanks,
Vijay Sherekar

answered Oct 24, 2013 at 12:29

Vijay's user avatar

I have a function where I am passing a string as params called filterXML which contains ‘&’ in one of the properties.

I know that XML will not recognize it and it will throw me an err. Here is my code:

 public XmlDocument TestXMLDoc(string filterXml)
{
    XmlDocument doc = new XmlDocument();
    XmlNode root = doc.CreateElement("ResponseItems");

    // put that root into our document (which is an empty placeholder now)
    doc.AppendChild(root);

    try
    {
        XmlDocument docFilter = new XmlDocument();
        docFilter.PreserveWhitespace = true;

        if (string.IsNullOrEmpty(filterXml) == false)
            docFilter.LoadXml(filterXml); //ERROR THROWN HERE!!!

What should I change in my code to edit or parse filterXml? My filterXml looks like this:

<Testing>
<Test>CITY & COUNTY</Test>
</Testing>

I am changing my string value from & to &. Here is my code for that:

string editXml = filterXml;
    if (editXml.Contains("&"))
    {
        editXml.Replace('&', '&amp;');
    }

But its giving me an err on inside the if statement : Too many literals.

asked Oct 3, 2011 at 17:57

RG-3's user avatar

RG-3RG-3

6,09819 gold badges69 silver badges125 bronze badges

2

The file shown above is not well-formed XML because the ampersand is not escaped.

You can try with:

<Testing>
  <Test>CITY &amp; COUNTY</Test>
</Testing>

or:

<Testing>
  <Test><![CDATA[CITY & COUNTY]]></Test>
</Testing>

answered Oct 3, 2011 at 18:01

Ghislain Fourny's user avatar

Ghislain FournyGhislain Fourny

6,9911 gold badge30 silver badges37 bronze badges

3

About the second question: there are two signatures for String.Replace. One that takes characters, the other that takes strings. Using single quotes attempts to build character literals — but «&amp;», for C#, is really a string (it has five characters).

Does it work with double quotes?

editXml.Replace("&", "&amp;");

If you would like to be a bit more conservative, you could also write code to ensure that the &s you are replacing are not followed by one of

amp; quot; apos; gt; lt; or #

(but this would still not be a perfect filtering)

answered Oct 3, 2011 at 18:27

Ghislain Fourny's user avatar

Ghislain FournyGhislain Fourny

6,9911 gold badge30 silver badges37 bronze badges

To specify an ampersand in XML you should use &amp; since the ampersand sign (‘&’) has a special meaning in XML.

answered Oct 3, 2011 at 18:02

DeCaf's user avatar

DeCafDeCaf

6,0261 gold badge29 silver badges51 bronze badges

Windows Server 2012 Datacenter Windows Server 2012 Datacenter Windows Server 2012 Essentials Windows Server 2012 Standard Windows Server 2012 Standard Windows Server 2012 Foundation Windows Server 2012 Foundation Еще…Меньше

Симптомы

Рассмотрим следующий сценарий:

  • У вас есть компьютер под управлением Windows Server 2012.

  • Анализатор соответствия рекомендациям для доменных служб Active Directory (AD DS) содержит правило для идентификации учетных записей, в которых стандарта шифрования данных включено.

  • Настройка контроллера домена под управлением Windows Server 2012.

  • Организационное подразделение (ОП) добавьте в контроллер домена.

  • Имя Подразделения содержит некоторые управляющие символы XML. Например Подразделение называется «Пользователи и компьютеры».

  • Создать некоторые учетные записи пользователей и объектов-компьютеров в Подразделении.

  • Включите параметр тип использования Kerberos DES для этой учетной записи для пользователей или компьютеров.

  • При попытке запуска AD DS анализатора соответствия рекомендациям.

В этом случае происходит сбой AD DS анализатора соответствия рекомендациям. Кроме того появляется следующее сообщение об ошибке:

Сбой проверки анализатор соответствия рекомендациям.
Произошла ошибка при разборе EntityName. Строка <число>, <число> позиции.

Причина

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

Решение

Это исправление доступно также в Каталог Центра обновления Майкрософт.

Сведения об исправлении

Существует исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте данное исправление только в тех системах, которые имеют данную проблему.

Если исправление доступно для скачивания, имеется раздел «Пакет исправлений доступен для скачивания» в верхней части этой статьи базы знаний. Если этого раздела нет, отправьте запрос в службу технической поддержки для получения исправления.

Примечание. Если наблюдаются другие проблемы или необходимо устранить неполадки, вам может понадобиться создать отдельный запрос на обслуживание. Стандартная оплата за поддержку будет взиматься только за дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос на обслуживание посетите следующий веб-узел корпорации Майкрософт:

http://support.microsoft.com/contactus/?ws=supportПримечание. В форме «Пакет исправлений доступен для скачивания» отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.

Предварительные условия

Для установки этого исправления необходимо наличие Windows Server 2012.

Сведения о реестре

Для установки этого исправления нет необходимости вносить изменения в реестр.

Необходимость перезагрузки

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

Сведения о замене исправлений

Это исправление не заменяет ранее выпущенные исправления.

Глобальная версия этого исправления устанавливает файлы с атрибутами, указанными в приведенных ниже таблицах. Дата и время для файлов указаны в формате UTC. Дата и время для файлов на локальном компьютере отображаются в местном времени с вашим текущим смещением летнего времени (DST). Кроме того, при выполнении определенных операций с файлами, даты и время могут изменяться.

Примечания к сведениям о файле Windows Server 2012Важно. Исправления для Windows Server 2012 и Windows 8 исправления включены в те же пакеты. Однако только «Windows 8» отображается на странице запрос исправления. Для получения пакета исправлений, который применяется к одной или обеих операционных систем, установите исправления, перечисленные в разделе «Windows 8» на странице. Всегда смотрите раздел «Информация в данной статье относится к следующим продуктам» статьи для определения фактических операционных систем, к которым применяется каждое исправление.

  • Файлы, относящиеся к определенному продукту, этапу разработки (RTM, SPn) и направлению поддержки (LDR, GDR) можно определить по номерам версий, как показано в следующей таблице.

    Версия

    Продукт

    Контрольная точка

    Направление поддержки

    6.2.920 0.16 xxx

    Windows Server 2012

    RTM

    GDR

    6.2.920 0.20 xxx

    Windows Server 2012

    RTM

    LDR

  • Выпуски обновлений GDR содержат только те исправления, которые выпускаются повсеместно и предназначены для устранения распространенных критических проблем. В обновления LDR входят также специализированные исправления.

  • Файлы МАНИФЕСТА (.manifest) и MUM (.mum), устанавливаемые для каждой среды, указаны отдельно в разделе «Дополнительные сведения о файлах» для системы Windows Server 2012»». Файлы MUM и MANIFEST, а также связанные файлы каталога безопасности (CAT) чрезвычайно важны для поддержания состояния обновленных компонентов. Файлы каталога безопасности, для которых не перечислены атрибуты, подписаны цифровой подписью корпорации Майкрософт.

Для всех поддерживаемых версий Windows Server 2012 для систем на базе x64

Имя файла

Версия файла

Размер файла

Дата

Время

Платформа

Directoryservices.ps1

Неприменимо

450,636

01-Apr-2013

22:07

Неприменимо

Directoryservices.sch

Неприменимо

212,346

02-Jun-2012

14:31

Неприменимо

Directoryservices.xsd

Неприменимо

38,940

02-Jun-2012

14:31

Неприменимо

Manifest.psd1

Неприменимо

298

02-Jun-2012

14:31

Неприменимо

Статус

Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе «Относится к».

Продукты независимых производителей, обсуждаемые в этой статье, производятся компаниями, независимыми от корпорации Майкрософт. Корпорация Майкрософт не дает никаких явных или подразумеваемых гарантий относительно производительности или надежности этих продуктов.

Дополнительные сведения

Для получения дополнительных сведений о терминологии обновлений программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:

Описание 824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Сведения о дополнительных файлах для Windows Server 2012

Дополнительные файлы для всех поддерживаемых версий Windows Server 2012 на базе x64

Имя файла

Amd64_09af4a19cfdc8639301287543e9ea37a_31bf3856ad364e35_6.2.9200.20678_none_765ba4873d6a6744.manifest

Версия файла

Неприменимо

Размер файла

713

Дата (UTC)

02-Apr-2013

Время (UTC)

08:29

Платформа

Неприменимо

Имя файла

Amd64_microsoft-windows-directoryservices-bpa_31bf3856ad364e35_6.2.9200.20678_none_c95866ef03d772d5.manifest

Версия файла

Неприменимо

Размер файла

5,798

Дата (UTC)

02-Apr-2013

Время (UTC)

01:14

Платформа

Неприменимо

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Hello All,

I have got an exception while parsing an XML string.

Here is the exception

an error occurred while parsing entityname;. line 1

and the XML I have used is as follows ;

<Details CompanyName="Outlook & Outlook Express" ></Details>

The code is given below :

StringReader strRdr = new StringReader(textBox1.Text);
XmlDocument xmlDoc = new XmlDocument();
try
{
    xmlDoc.Load(strRdr);
    XmlNode node = xmlDoc.DocumentElement.SelectSingleNode(@"/Details");
}
catch (Exception Ex)
{
    System.Windows.Forms.MessageBox.Show(Ex.Message.ToString(), "XML Parsing");
}

If someone can help me to solve this issue, that would be great.

Regards
Sebastian

Updated 17-Apr-17 13:04pm


1 solution

Solution 1

It is because of & in the company name. When the string is being loaded in the XMLDocument it throws the error.

You need to encode it before loading it up. Following should do:

StringReader strRdr = new StringReader("<Details CompanyName=\"Outlook &amp; Outlook Express\" ></Details>");

If needed, decode it back when needed.

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Ошибка при проверке лицензии солид
  • Ошибка при разборе xml данных описание навигатора
  • Ошибка при пересылке konica
  • Ошибка при проверке подлинности код 0x607
  • Ошибка при проверке подписи эталона цфт

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: