Я создаю несколько XmlElements, используемых в более крупном XML-документе.
XmlElement thisElement = xmlSearchParameters.CreateElement("value");
thisElement.InnerXml = this.searchParameters[key];
Это хорошо работает для большинства экземпляров, но если значение параметра searchParameters [key] включает в себя символ an и, я получаю одну из двух следующих ошибок:
Непредвиден конец файла. Строка 1, позиция 1. - если значение ONLY &
При анализе EntityName произошла ошибка. Строка 1, позиция 7. - если значение содержит и смешивается с другим текстом.
Каков предпочтительный способ включения и и любых других специальных символов в XmlElement? Я подозреваю, что должен быть лучший способ, чем просто замена и что-то еще (какой-то метод XmlFormat???).
Почему вы используете InnerXml
в первую очередь? Он должен использоваться, если у вас есть некоторая допустимая разметка в неразделенной строковой форме и хотите ее вставить. Для обычного текста используйте InnerText
:
thisElement.InnerText = this.searchParameters[key];
Если вы используете InnerXml, вы должны гарантировать, что текстовое значение действительно xml. Используйте свойство InnerText вместо InnerXml.
SecurityElement.Escape заменит символы меньшего, большего, цитированного, апострофа и амперсанда, что, вероятно, все, что вам нужно.