OPees Ответов: 1

Измените строковое значение при записи в XML


определенная постоянная строка
const string ConstStrCheck= "";

добавление выше
ConstStrCheck
в объекте string builder
любить
StringBuilder strBody = new StringBuilder();
 strBody.AppendLine("<ISAPPLICABLE>" + ConstStrCheck+ " Applicable</ISAPPLICABLE><STATENAME>" + ConstStrCheck+ " Any</STATENAME>");

попадание в строку вот так
<ISAPPLICABLE>&#4; Applicable</ISAPPLICABLE><STATENAME>&#4; Any</STATENAME>

но при записи в XML с помощью
 XmlDocument doc = new XmlDocument();
doc.LoadXml(strBody.ToString())

получение XML таким образом
<isapplicable>&#x4; Применимо <statename>&#икс4; любой

Получение
x
Дополнительно в этой строке
&#4;


Что я уже пробовал:

не в состоянии понять, почему это происходит
Пожалуйста, помогите мне

Kornfeld Eliyahu Peter

XML-объекты - те, которые не имеют конкретных имен - имеют два одинаково допустимых формата...
nnn и nnn - первый для десятичных и второй для шестнадцатеричных значений...
Поскольку 4-это одно и то же как в десятичном, так и в шестнадцатеричном формате, а XmlDocument всегда использует шестнадцатеричный формат, я бы сказал, что все хорошо...

OPees

Поймите суть дела спасибо Корнфельду Элиягу Петеру

OPees

есть ли какой-нибудь способ заставить писать только в десятичной системе счисления

Kornfeld Eliyahu Peter

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

OPees

спасибо

Laxmidhar tatwa technologies

Есть ли у вас успех

OPees

нет, все еще пытаюсь

OPees

ссылка на необъявленную сущность " s " и если вы собираетесь разрешить или объявить сущность
получение такого имени ошибки не может начинаться с символа '&', шестнадцатеричное значение 0x26

есть ли другой способ без объявления сущности

Laxmidhar tatwa technologies

Попробуйте усилители ; с &

OPees

ошибка сохранения ссылки на необъявленную сущность "усилители"

Laxmidhar tatwa technologies

Вместо &амп; взять switable маленькое слово и после собрать его измениться немного, чтобы опять усилителя;

1 Ответов

Рейтинг:
1

Maciej Los

Вы можете использовать Класс XDocument[^].

Например:

const string ConstStrCheck= "&#4;";

XElement xroot = new XElement("MyRoot");
XElement xele1 = new XElement("ISAPPLICABLE", ConstStrCheck + " Applicable");
XElement xele2 = new XElement("STATENAME", ConstStrCheck + " Any");
xroot.Add(xele1);
xroot.Add(xele2);

XDocument xdoc = new XDocument();
xdoc.Add(xroot);


Результат:
<MyRoot>
  <ISAPPLICABLE>&#4; Applicable</ISAPPLICABLE>
  <STATENAME>&#4; Any</STATENAME>
</MyRoot>