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
9,70610 gold badges51 silver badges71 bronze badges
asked Jul 17, 2013 at 14:16
3
Replace your "&"
with "&"
HamZa
14.7k11 gold badges54 silver badges75 bronze badges
answered Jul 17, 2013 at 14:22
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ø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ø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
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
9,70610 gold badges51 silver badges71 bronze badges
asked Jul 17, 2013 at 14:16
3
Replace your "&"
with "&"
HamZa
14.7k11 gold badges54 silver badges75 bronze badges
answered Jul 17, 2013 at 14:22
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ø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ø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
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('&', '&');
}
But its giving me an err on inside the if statement : Too many literals.
asked Oct 3, 2011 at 17:57
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 & COUNTY</Test>
</Testing>
or:
<Testing>
<Test><![CDATA[CITY & COUNTY]]></Test>
</Testing>
answered Oct 3, 2011 at 18:01
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 «&», for C#, is really a string (it has five characters).
Does it work with double quotes?
editXml.Replace("&", "&");
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 FournyGhislain Fourny
6,9911 gold badge30 silver badges37 bronze badges
To specify an ampersand in XML you should use &
since the ampersand sign (‘&’) has a special meaning in XML.
answered Oct 3, 2011 at 18:02
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 & Outlook Express\" ></Details>");
If needed, decode it back when needed.