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,04819 gold badges68 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,9511 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,9511 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,0061 gold badge28 silver badges51 bronze badges
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,5509 gold badges50 silver badges67 bronze badges
asked Jul 17, 2013 at 14:16
3
Replace your "&"
with "&"
HamZa
14.5k11 gold badges54 silver badges75 bronze badges
answered Jul 17, 2013 at 14:22
Microsoft DNMicrosoft DN
9,5509 gold badges50 silver badges67 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,1711 gold badge16 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,1711 gold badge16 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,5509 gold badges50 silver badges67 bronze badges
asked Jul 17, 2013 at 14:16
3
Replace your "&"
with "&"
HamZa
14.5k11 gold badges54 silver badges75 bronze badges
answered Jul 17, 2013 at 14:22
Microsoft DNMicrosoft DN
9,5509 gold badges50 silver badges67 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,1711 gold badge16 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,1711 gold badge16 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
Я читаю строку XML с помощью XDocument
XmlReader reader = XmlReader.Create(new StringReader(xmltext));
reader.Read();
XDocument xdoc = XDocument.Load(reader);
Затем я беру содержимое некоторых тегов и помещаю их в теги в другой строке. Когда я пытаюсь загрузить эту строку так же, как и с первой, я получаю сообщение об ошибке «Произошла ошибка при разборе EntityName. Строка 1, позиция 344».
Я думаю, что он должен быть проанализирован правильно, так как он был проанализирован раньше, поэтому я думаю, что здесь что-то упустил.
Я читаю и копирую содержимое первого XML с помощью (string)i.Element("field")
.
Я использую .net 4
3 ответы
Когда я беру содержимое xml, которое хочу использовать для создания другой строки Xml, я использую (string)i.Element("field")
и это преобразует мой Xml в строку. Мой следующий синтаксический анализ Xml больше не распознает его как элемент, поэтому я решил проблему, не используя (строку), прежде чем я прочитаю свой элемент, просто i.Element("field")
и это работает.
ответ дан 07 авг.
Похоже, у вас есть что-то вроде этого:
<OriginalDocument>
<Foo>A & B</Foo>
</OriginalDocument>
То, что A & B
представляет текст A & B
. Поэтому, когда вы берете текст из элемента, вы получите строку «A & B». Если вы затем используете это для создания нового элемента, подобного этому:
string foo = "<Foo>" + fooText + "</Foo>";
то вы получите недопустимый XML, например:
<Foo>A & B</Foo>
По сути, вы не должны создавать XML в текстовой форме. Непонятно, чего вы на самом деле пытаетесь достичь, но вы можете довольно легко скопировать элемент из одного места в другое в XElement
форма; вам не нужно создавать строку, а затем повторно анализировать ее.
ответ дан 07 авг.
Итак, потратив несколько часов на эту проблему: оказывается, что если у вас есть символ амперсанда («&») или любые другие escape-символы XML в вашей строке xml, он всегда будет терпеть неудачу, если вы попытаетесь прочитать XML. ЧТОБЫ решить эту проблему, замените специальные символы их экранированным строковым форматом.
YourXmlString = YourXmlString.Replace("'", "'").Replace(""", """).Replace(">", ">").Replace("<", "<").Replace("&", "&");
Создан 01 ноя.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
c#
linq-to-xml
or задайте свой вопрос.
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
Похоже, у вас есть что-то вроде этого:
<OriginalDocument>
<Foo>A & B</Foo>
</OriginalDocument>
То, что A & B
представляет текст A & B
. Поэтому, когда вы берете текст из элемента, вы получите строку «A & B». Если вы затем используете это для создания нового элемента, подобного этому:
string foo = "<Foo>" + fooText + "</Foo>";
то вы получите недопустимый XML, например:
<Foo>A & B</Foo>
По сути, вы не должны создавать XML в текстовой форме. Непонятно, чего вы на самом деле пытаетесь достичь, но вы можете довольно легко скопировать элемент из одного места в другое в XElement
форма; вам не нужно создавать строку, а затем повторно анализировать ее.
ответ дан 07 авг.
Итак, потратив несколько часов на эту проблему: оказывается, что если у вас есть символ амперсанда («&») или любые другие escape-символы XML в вашей строке xml, он всегда будет терпеть неудачу, если вы попытаетесь прочитать XML. ЧТОБЫ решить эту проблему, замените специальные символы их экранированным строковым форматом.
YourXmlString = YourXmlString.Replace("'", "'").Replace(""", """).Replace(">", ">").Replace("<", "<").Replace("&", "&");
Создан 01 ноя.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
c#
linq-to-xml
or задайте свой вопрос.
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,00819 gold badges68 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,9011 gold badge29 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,9011 gold badge29 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
5,9761 gold badge27 silver badges50 bronze badges
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,00819 gold badges68 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,9011 gold badge29 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,9011 gold badge29 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
5,9761 gold badge27 silver badges50 bronze badges
I have written some code to parse RSS feeds for a ASP.NET C# application and it works fine for all RSS feeds that I have tried, until I tried Facebook.
My code fails at the last line below…
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream rss = response.GetResponseStream();
XmlDocument xml = new XmlDocument();
xml.Load(rss);
…with the error «An error occurred while parsing EntityName. Line 12, position 53.»
It is hard to work out what is at thhat position of the XML file as the entire file is all in one line, but it is straight from Facebook and all characters appear to be encoded properly except possibly one character (♥).
I don’t particularly want to rewrite my RSS parser to use a different method. Any suggestions for how to bypass this error? Is there a way of turning off checking of the file?
John Saunders
160k26 gold badges241 silver badges394 bronze badges
asked Sep 26, 2011 at 8:22
3
Look at the downloaded stream. It doesn’t contain the RSS feed, but a HTML page with message about incompatible browser. That’s because when downloading the URL like this, the user agent header is not set. If you do that, your code should work:
var request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "MyApplication";
var xml = new XmlDocument();
using (var response = request.GetResponse())
using (var rss = response.GetResponseStream())
{
xml.Load(rss);
}
answered Sep 26, 2011 at 13:07
svicksvick
233k50 gold badges385 silver badges509 bronze badges
0
I have written some code to parse RSS feeds for a ASP.NET C# application and it works fine for all RSS feeds that I have tried, until I tried Facebook.
My code fails at the last line below…
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream rss = response.GetResponseStream();
XmlDocument xml = new XmlDocument();
xml.Load(rss);
…with the error «An error occurred while parsing EntityName. Line 12, position 53.»
It is hard to work out what is at thhat position of the XML file as the entire file is all in one line, but it is straight from Facebook and all characters appear to be encoded properly except possibly one character (♥).
I don’t particularly want to rewrite my RSS parser to use a different method. Any suggestions for how to bypass this error? Is there a way of turning off checking of the file?
John Saunders
160k26 gold badges241 silver badges394 bronze badges
asked Sep 26, 2011 at 8:22
3
Look at the downloaded stream. It doesn’t contain the RSS feed, but a HTML page with message about incompatible browser. That’s because when downloading the URL like this, the user agent header is not set. If you do that, your code should work:
var request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "MyApplication";
var xml = new XmlDocument();
using (var response = request.GetResponse())
using (var rss = response.GetResponseStream())
{
xml.Load(rss);
}
answered Sep 26, 2011 at 13:07
svicksvick
233k50 gold badges385 silver badges509 bronze badges
0
Я обнаружил, что в моем коде существует "&"
, почему ошибка показывает
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(dsExport.Tables[0].Rows[i]["SubmissionData"].ToString());
«&» есть в представлении данных. Как удалить специальные символы, чтобы ошибка не отображалась снова?
Заранее спасибо
17 июль 2013, в 17:15
Поделиться
Источник
4 ответа
Microsoft DN
17 июль 2013, в 12:00
Поделиться
Try:
XmlDocument xmlDoc = new XmlDocument();
string str = dsExport.Tables[0].Rows[i]["SubmissionData"].ToString();
str = System.Web.HTTPUtility.HTMLDecode(str);
xmlDoc.LoadXml(str);
Pål Thingbø
17 июль 2013, в 12:49
Поделиться
& не является незаконным символом XML. Это не ваша проблема. Вам нужно зарегистрировать полученный XML-код, прежде чем вы спросите кого-нибудь о вашей проблеме. Вероятно, вам нужно
HTTPUtility.HTMLDecode(yourformdata)
Но я очень хорошо чувствую SQL-инъекцию.
Pål Thingbø
17 июль 2013, в 12:11
Поделиться
Извините, я слишком поздно отвечаю, но надеюсь, что это поможет некоторым другим парням. Эта проблема связана с кодировкой специальных символов в XML. Пожалуйста, найдите приведенную ниже ссылку, которая может вам помочь https://support.google.com/checkout/sell/answer/70649?hl=en
Благодаря,
Виджай Шерекар
Vijay
24 окт. 2013, в 10:00
Поделиться
Ещё вопросы
- 0Добавить класс в несколько div в зависимости от события клика
- 0Реализация где не в использовании Eloquent моделей не работает
- 1УРОВЕНЬ УРОВНЯ Дерева с Явой
- 0Кендо У.И. Грид, Дюрандаль
- 0Android: fromhtml оставляет детали шрифта в строке
- 0Предупреждение: mysql_result () [function.mysql-result]: невозможно перейти к строке -1
- 0Почему onmouseover и onclick не будут работать вместе, устанавливая стили div, и как сбросить стили набора onclick, не теряя onmouseover?
- 0Уровни изоляции MySQL в nodejs. Каждый запрос в соединении изолирован или каждый пул изолирован?
- 0Голос за кадром в iOS для диапазона слайдера с вертикальным типом ввода неверно отображает пролистывание влево и вправо
- 0Горизонтальный Div Inside Inside Loop, показывающий те же продукты PHP
- 1Конвертировать карту лямбда в список понимания
- 1Сохранить переменную в постбэках, но очистить / не сохранить на странице выхода
- 1Тензор имеет форму [?, 0] — как изменить форму на [?,]
- 5Керас не использует полноценные ядра процессора для обучения
- 0AngularJS: передать функцию видимости в директиву внутри объекта JSN
- 1Апплет не начнет использовать апплет-бегун из Intellij Idea
- 1Python3 — Проблемы с определением типа объекта
- 0Использование переменных в JavaScript для динамической ссылки на элементы HTML
- 0Можно ли иметь, если еще в HTTP-запрос в угловых JS?
- 1Нужно ли использовать threadPool.awaitTermination after future.get ();
- 0Попытка выяснить, есть ли лучший способ структурировать этот запрос с помощью объединений
- 1paginator угловой 2 материала получить индекс текущей страницы
- 1Импортировать строку CSV в DICT?
- 1Изображение Java после моего курсора
- 1ListView и изображения
- 0Почему мое приложение MFC удаляется без сообщения, даже когда оно открыто / работает?
- 0частота обновления для уникального идентификатора продукта каждым пользователем
- 0Всплывающее окно Angularjs oauth, дождитесь ответа JSON
- 1SurfaceView отображает подачу камеры в сторону
- 1Как проверить, пуста ли строка сетки данных?
- 1как включить служебные классы в Eclipse (Android-программирование)
- 1Как мы можем заставить пользователя вводить значения без использования обязательного позиционного аргумента при вызове функции в Python?
- 1смещение ширины графика при прокрутке
- 1Как заработать очки, а затем добавить их все
- 0Как мне преобразовать cv :: Mat в cv :: Rect
- 0Как создать селектор jquery на основе другого селектора?
- 0preg_replace с preg_quote кроме одного столбца
- 0Отображение массива ошибок структуры / класса C ++
- 0Группировать по родителю, но не по ребенку
- 0Как добавить переменную в путь push-функции в Angular?
- 0Угловой ‘orderBy’ не работает со сложными опциями ng
- 0Mysql Collation проблема для многоязычной концепции
- 0(function ($) {// Некоторый код}) (jQuery); [Дубликат]
- 1Найти преобразование в случайную величину X из Uniform (0, 1) с помощью SymPy
- 1customScript.js: 1 Uncaught ReferenceError: $ не определено
- 1IntelliJ Идея JPA сущностей в src / test /
- 1Удалить записи из файла свойств
- 1Я не могу нажимать кнопки в Firefox при редактировании <body> страницы
- 1Найти все слова, которые не имеют конкретного символа до
- 0Конвертировать HTML-код в код ActionScript
22.01.2018, 14:41. Показов 1605. Ответов 2
Здравствуйте, есть проблема при парсинге Xml файла при помощи класса XmlTextReader ругается на одиночные — «&» в файле Xmk, ошибка следующего содержания » Ошибка при разборе EntityName., строка 131, позиция 1305.» (указывает на позицию этого амперсанда) как быть, подскажите, вот код
C# | ||
|
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Я обнаружил, что в моем коде существует "&"
, почему ошибка показывает
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(dsExport.Tables[0].Rows[i]["SubmissionData"].ToString());
«&» есть в представлении данных. Как удалить специальные символы, чтобы ошибка не отображалась снова?
Заранее спасибо
17 июль 2013, в 17:15
Поделиться
Источник
4 ответа
Microsoft DN
17 июль 2013, в 12:00
Поделиться
Try:
XmlDocument xmlDoc = new XmlDocument();
string str = dsExport.Tables[0].Rows[i]["SubmissionData"].ToString();
str = System.Web.HTTPUtility.HTMLDecode(str);
xmlDoc.LoadXml(str);
Pål Thingbø
17 июль 2013, в 12:49
Поделиться
& не является незаконным символом XML. Это не ваша проблема. Вам нужно зарегистрировать полученный XML-код, прежде чем вы спросите кого-нибудь о вашей проблеме. Вероятно, вам нужно
HTTPUtility.HTMLDecode(yourformdata)
Но я очень хорошо чувствую SQL-инъекцию.
Pål Thingbø
17 июль 2013, в 12:11
Поделиться
Извините, я слишком поздно отвечаю, но надеюсь, что это поможет некоторым другим парням. Эта проблема связана с кодировкой специальных символов в XML. Пожалуйста, найдите приведенную ниже ссылку, которая может вам помочь https://support.google.com/checkout/sell/answer/70649?hl=en
Благодаря,
Виджай Шерекар
Vijay
24 окт. 2013, в 10:00
Поделиться
Ещё вопросы
- 0как использовать show () и hide () с задержкой ()?
- 0Обновление с объединением с условиями из другой таблицы [MySQL]
- 1Проверьте, сколько элементов из списка pandas daframe содержится в столбце
- 0Как удалить файл из папки с помощью codeigniter
- 1Шифрование сообщений чата, хранящихся в базе данных Firebase
- 0Как передать выбранное выпадающее значение в ng-repeat orderby
- 1Как вручную добавить установщик в службу Windows?
- 1Каков наиболее эффективный способ суммирования слова с несколькими ключами одним ключом?
- 1отображать справку, если неверно или опция миссии в клике
- 0Как написать тестовый модуль для сервиса, который возвращает обещание
- 1Node.js fs.writeFile: err возвращает ноль
- 0AngularFire & Ionic — форма данных не передается на сервер
- 0заменить оператор new на malloc
- 1Больше информации об ошибке + более длинная программа или меньше информации об ошибке + более короткая программа?
- 0Факториальная сумма цифр (без BigInt) C ++
- 0кодирование значения объекта в функции ng-click
- 0настройка типа ввода в ng-repeat
- 0Почему, когда я пытаюсь скрыть свой треугольник CSS с помощью jQuery, добавив класс, это не работает?
- 1Привязка Vue переопределяет атрибут элемента
- 0Как открыть вторичную ссылку IFRAME на Первичную ссылку IFRAME?
- 1Как удалить выбранные строки из фрейма данных при условии
- 1Как заставить entrySet () показывать пары ключ-значение на новой строке? (Java)
- 0API для запроса REST от NodeJS к бэкэнду
- 1Как использовать Loop для выполнения процедуры хранения в Cosmos-DB / Document-DB?
- 0Как я могу разработать мобильное веб-приложение с использованием Visual Studio 2012 и jquery с asp.net MVC
- 0PHP Alter Base64 Кодировка изображения
- 1Есть ли быстрые альтернативы для функции TextureView.getBitmap ()?
- 1Составление листа Excel с использованием Python и Matplotlib?
- 1Vue.js + Require.js расширяющий родительский
- 0ошибка: нет соответствующей функции для вызова const
- 0MySQL — объединить строку со следующими N меньшими строками
- 0Как передать структуру каталога в директиву ng-file-upload в браузере Chrome?
- 0Добавить одноэлементную функцию в класс Pimpl
- 0Ошибки округления, дающие неправильные тесты в DFT?
- 0C ++ SWIG генерирует код в зависимости от Tcl
- 0Ошибка MySQL 1215: невозможно добавить ограничение внешнего ключа для типа данных геометрии POINT
- 0jquery динамически перемещает строки с помощью .on
- 1Загрузите текстовый файл cookie в Python
- 0Неопределенная ссылка — CodeBlocks
- 0Как проверить, если сегодняшняя дата = дата из sql?
- 0Почему мой jQuery не меняет цвет фона моего div с изменением анимации?
- 0HTML5 и PHP: Воспроизведение видеофайла в формате base64
- 0Удалить escape-последовательности из разобранного HTML
- 0Как перенести введенные значения ng-модели в таблицу в Angular?
- 1Чтение XML-файла из определенных тегов
- 1Как завершить приложение, когда оно уходит в фоновом режиме
- 1com.ibm.db2.jcc.am.SqlException: [jcc] [10120] [11936] [4.14.88] Недопустимая операция: Lob закрыт. ERRORCODE = -4470, SQLSTATE = null
- 0Страница открыта с использованием загрузки jQuery с неверными путями к изображениям
- 1Вызовите API Genderize.io из C #
- 1Сохранение файлового объекта с помощью matplotlib savefig, создание tar-файла из нескольких рисунков SVG
I have got the following exception from the below code block.
An error occurred while parsing EntityName. Line1, position 844.
I was trying to parse s set of data retrieved from table to a data set.
public DataSet BindMasterData(string xml)
{
DataSet ds = null;
try
{
ds = new DataSet();
TextReader txtReader = new StringReader(xml);
XmlReader reader = new XmlTextReader(txtReader);
ds.ReadXml(reader);
}
catch (Exception ex)
{
return new DataSet();
}
return ds;
}
I have figured out the reason for the exception, but I couldn’t solve it. In this particular situation, the string(which is retrieved from DB) contains a special character (&). That causes exception. How I can solve it. Any help on this would be great.
Luke Girvin
13.2k9 gold badges63 silver badges84 bronze badges
asked May 8, 2014 at 12:33
Sebastian XavierSebastian Xavier
2,4597 gold badges27 silver badges41 bronze badges
2
Just replace them:
Not valid in XML elements:
" "
' '
< <
> >
& &
public static string UnescapeXMLValue(string xmlString)
{
if (xmlString == null)
throw new ArgumentNullException("xmlString")
return xmlString.Replace("'", "'").Replace(""", """).Replace(">", ">").Replace("<", "<").Replace("&", "&");
}
public static string EscapeXMLValue(string xmlString)
{
if (xmlString == null)
throw new ArgumentNullException("xmlString")
return xmlString.Replace( "&","&").Replace("'","'").Replace( """, """).Replace(">",">").Replace( "<","<");
}
Siddhant
1,06412 silver badges22 bronze badges
answered May 8, 2014 at 12:43
Bassam AlugiliBassam Alugili
16.1k7 gold badges52 silver badges70 bronze badges
4
This has already been answered, but found a nicer way of achieving the same outcome by doing this in .NET 4.5 by using the Escape method as below:
var xmlWithEscapedCharacters = SecurityElement.Escape(xmlWithoutEscapedCharacters);
and then just plug that string into the XML that is being generated.
Link: MSDN — SecurityElement.Escape Method
answered Dec 18, 2014 at 9:10
1
If your XML is being constructed with string concatenation then you’ll be wanting to escape it.
&
should become &
while <
and >
should become <
and >
respectively.
There may be others too.
Of course you should really use a proper XML encoder rather than trying to do it yourself for many reasons.
answered May 8, 2014 at 12:37
DJLDJL
2,0613 gold badges19 silver badges38 bronze badges
As the data comes from some data base, the problem can be hot-fixed in the context you described, but I would strongly recommend a different approach. The ampersand symbol should not have occured in the xml in the first place, as discussed here. Please clarify how the xml is generated and address the problem there.
answered May 8, 2014 at 12:51
CodorCodor
17.4k9 gold badges29 silver badges56 bronze badges
Blue
22.5k7 gold badges61 silver badges90 bronze badges
answered Jan 30, 2018 at 13:14
1
Symptoms
Your JIRA application fails to restore a XML backup and presents messages similar to the below in the atlassian-jira.log.
2013-01-01 13:01:09,350 JiraImportTaskExecutionThread-1 ERROR XXXXXX 781x19x1 1bk15j5 0:0:0:0:0:0:0:1 /secure/SetupImport.jspa [jira.bc.dataimport.DefaultDataImportService] Error importing data: java.lang.IllegalArgumentException: [GenericDelegator.makeValue] could not find entity for entityName: LinkEntity
java.lang.IllegalArgumentException: [GenericDelegator.makeValue] could not find entity for entityName: LinkEntity
at org.ofbiz.core.entity.GenericDelegator.makeValue(GenericDelegator.java:430)
at sun.reflect.GeneratedMethodAccessor120.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$AbstractMultiTenantAwareInvocationHandler.invokeInternal(MultiTenantComponentFactoryImpl.java:181)
at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$MultiTenantAwareMethodInterceptor.intercept(MultiTenantComponentFactoryImpl.java:230)
at org.ofbiz.core.entity.GenericDelegator$$EnhancerByCGLIB$$9e98ab2.makeValue(<generated>)
at com.atlassian.jira.ofbiz.DefaultOfBizDelegator.makeValue(DefaultOfBizDelegator.java:385)
at com.atlassian.jira.action.admin.OfbizImportHandler.startElement(OfbizImportHandler.java:176)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
(...)
JiraImportTaskExecutionThread-1 ERROR XXXXX 775x191x1 13ia0t7 0:0:0:0:0:0:0:1 /secure/admin/XmlRestore.jspa [jira.bc.dataimport.DefaultDataImportService] Error importing data: java.lang.IllegalArgumentException: [GenericDelegator.makeValue] could not find entity for entityName: KPlugins
java.lang.IllegalArgumentException: [GenericDelegator.makeValue] could not find entity for entityName: KPlugins
at org.ofbiz.core.entity.GenericDelegator.makeValue(GenericDelegator.java:430)
at sun.reflect.GeneratedMethodAccessor285.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$AbstractMultiTenantAwareInvocationHandler.invokeInternal(MultiTenantComponentFactoryImpl.java:181)
at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$MultiTenantAwareMethodInterceptor.intercept(MultiTenantComponentFactoryImpl.java:230)
at org.ofbiz.core.entity.GenericDelegator$$EnhancerByCGLIB$$6c2a9e86.makeValue(<generated>)
at com.atlassian.jira.ofbiz.DefaultOfBizDelegator.makeValue(DefaultOfBizDelegator.java:371)
at com.atlassian.jira.action.admin.OfbizImportHandler.startElement(OfbizImportHandler.java:160)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
(...)
2016-01-04 19:00:06,390 JiraImportTaskExecutionThread-1 ERROR anonymous 1140x23x1 gt55l6 192.168.10.122 /secure/SetupImport.jspa [c.a.j.bc.dataimport.DefaultDataImportService] Error importing data: java.lang.IllegalArgumentException: [GenericEntity.setString] "q_text" is not a field of
java.lang.IllegalArgumentException: [GenericEntity.setString] "q_text" is not a field of
at org.ofbiz.core.entity.GenericEntity.setString(GenericEntity.java:326)
at com.atlassian.jira.action.admin.OfbizImportHandler.endElement(OfbizImportHandler.java:506)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
Cause
There are two possible causes for this problem.
Cause #1
The XML backup was generated from an instance which has some specific third party plugins installed that use JIRA application default entity model for data storage, which is unsupported.
Some of the plug-ins known to cause the problem are:
- Minyaa Suite (formerly Kaamelot Plugin)
- Database Custom Field (depends on katl-commons). Raised with the plugin developers under DBCF-215.
- Blitz Action. Raised with the plugin developers under KBA-44.
- User Group Picker (depends on katl-commons). Raised with the third-party plugin developers under UGP-55.
- JJupin (depends on katl-commons). Raised with the third-party plugin developers under IMJ-303.
- qanda
These add-ons are not supported by Atlassian, therefore it’s recommended to contact the vendor responsible for each in the occurrence of this problem before proceeding with any action.
JRA-40722
—
Getting issue details…
STATUS
Cause #2
The XML backup was generated from an application version newer than the targeted JIRA application instance.
Since different versions of JIRA applications may use different entity models, importing a backup from a newer version of a JIRA application can introduce this sort of problems, therefore it’s unsupported.
Resolution
For «Cause #1»
Carefully check what plugins you had installed on the JIRA application source instance and install them all on the new application before restoring the data.
This may require the purchase of additional licenses.
For «Cause #2»
Import the backup file into a version of JIRA applications equal to or newer than the one from where the backup was generated.
Workaround
Only for «Cause #1»
You will lose all the functionality and data provided by those third party plugins. You may also lose functionalities from other plugins we’re not aware of.
If you don’t intend to keep those plugins in your new JIRA application instance or if the solution provided by the vendor contacted was insufficient, you can purge all the data related to those add-ons from the XML file following the below steps.
-
Copy your backup file and keep it in a safe place in case of you need the previous data in the future;
-
Unzip the file and edit the
entities.xml
file. Remove all the following tags:TimesheetEntity TimesheetScheme Myaa ReportEntity ReportScheme LinkEntity LinkScheme WorklogExt WorklogType KPlugins KPluginsCfg cfgDefaultValue cfgLDefaultValue cfgValue cfgLValue QANDAA QANDAQ QANDAE a_text q_text jjlf_project jjlf_config jjlf_category KListenerSils JiraCapacityPlan additionalTaskDescription testexecutionhistory KRSSecurity KBlitzActions
Note: If you’re using an Unix-based operating system, you can run the below command on a terminal window.
egrep -v "(QANDAA|QANDAQ|QANDAE|a_text|q_text|TimesheetEntity|TimesheetScheme|Myaa|ReportEntity|ReportScheme|LinkEntity|LinkScheme|WorklogExt|WorklogType|KPlugins|KPluginsCfg|cfgDefaultValue|cfgLDefaultValue|cfgValue|cfgLValue|jjlf_config|jjlf_project|jjlf_category|KListenerSils|JiraCapacityPlan|additionalTaskDescription|testexecutionhistory|KRSSecurity|KBlitzActions)" entities.xml > entities-purged.xml
Additionally there is a Java file that can be used to do this, located at https://bitbucket.org/atlassianlabs/xml-purge/downloads/xml-purge-1.0-SNAPSHOT.jar. Download that and run the following (this requires Java 8):
java -jar xml-purge-1.0-SNAPSHOT.jar entities.xml > entities-purged.xml
-
Zip the modified
entities.xml
file back into a backup file;Note: If you’re running an Unix-based operating system, you can run the below command on a terminal window.
mv entities-purged.xml entities.xml ; zip -r MyBackupFile.zip entities.xml activeobjects.xml
-
Restart the XML restore process;