Добавить амперсанд в XmlElement

2

Я создаю несколько XmlElements, используемых в более крупном XML-документе.

XmlElement thisElement = xmlSearchParameters.CreateElement("value");
thisElement.InnerXml = this.searchParameters[key];

Это хорошо работает для большинства экземпляров, но если значение параметра searchParameters [key] включает в себя символ an и, я получаю одну из двух следующих ошибок:

Непредвиден конец файла. Строка 1, позиция 1. - если значение ONLY &

При анализе EntityName произошла ошибка. Строка 1, позиция 7. - если значение содержит и смешивается с другим текстом.

Каков предпочтительный способ включения и и любых других специальных символов в XmlElement? Я подозреваю, что должен быть лучший способ, чем просто замена и что-то еще (какой-то метод XmlFormat???).

Теги:

3 ответа

8
Лучший ответ

Почему вы используете InnerXml в первую очередь? Он должен использоваться, если у вас есть некоторая допустимая разметка в неразделенной строковой форме и хотите ее вставить. Для обычного текста используйте InnerText:

thisElement.InnerText = this.searchParameters[key];
  • 0
    Спасибо за чаевые. Я не очень много работал с XmlElement в прошлом, и именно так был настроен код, когда я начал над ним работать. Переход на использование InnerText решает мою проблему.
4

Если вы используете InnerXml, вы должны гарантировать, что текстовое значение действительно xml. Используйте свойство InnerText вместо InnerXml.

2

SecurityElement.Escape заменит символы меньшего, большего, цитированного, апострофа и амперсанда, что, вероятно, все, что вам нужно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню