Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Существует множество способов изменения узлов и содержимого в документе. Вы можете:
Измените значение узлов с помощью Value свойства.
Измените весь набор узлов, заменив узлы новыми узлами. Это делается с помощью InnerXml свойства.
Замените существующие узлы новыми узлами с помощью RemoveChild метода.
Добавьте дополнительные символы в узлы, которые наследуют от класса XmlCharacterData, с помощью методов AppendData, InsertData или ReplaceData.
Измените содержимое, удалив диапазон символов с помощью DeleteData метода на типах узлов, наследуемых от XmlCharacterData.
Простой способ изменения значения узла — использовать node.Value = "new value";
. В следующей таблице перечислены типы узлов, над которыми работает одна строка кода и какие данные для этого типа узла изменяются.
Тип узла | Измененные данные |
---|---|
Свойство | Значение атрибута. |
CDATASection (секция с данными в формате CDATA) | Содержимое CDATASection. |
Комментарий | Содержимое комментария. |
Инструкция по обработке | Содержимое, за исключением целевого объекта. |
Текст | Содержимое текста. |
Объявление XML | Содержимое объявления, за исключением <?xml разметки и ?> разметки. |
Пробелы | Значение белого пространства. Можно задать значение одним из четырех распознаваемых символов пробела в XML: пробел, табуляция, CR или LF. |
ЗначащиеПробелы (SignificantWhitespace) | Значение значимого белого пространства. Можно задать значение одним из четырех распознаваемых символов пробела в XML: пробел, табуляция, CR или LF. |
Любой тип узла, не указанный в таблице, не является допустимым типом узла для задания значения. Задание значения для любого другого типа узла вызывает InvalidOperationExceptionисключение.
Свойство InnerXml изменяет разметку дочерних узлов для текущего узла. Если задать это свойство, дочерние узлы заменяются проанализированным содержимым заданной строки. Синтаксический анализ выполняется в текущем контексте пространства имен. Кроме того, InnerXml удаляет избыточные объявления пространства имен. В результате многочисленные операции вырезания и вставки не увеличивают размер документа с избыточными объявлениями пространства имен. Пример кода, демонстрирующий влияние пространств имен на операцию InnerXml, можно найти в свойстве InnerXml.
При использовании методов ReplaceData и RemoveChild возвращается замененный или удаленный узел. Затем этот узел можно повторно включить где-либо в объектной модели XML-документа (DOM). Метод ReplaceData выполняет две проверки на узле, вставленном в документ. Первая проверка гарантирует, что узел становится дочерним узлом узла, который может иметь дочерние узлы своего типа. Вторая проверка гарантирует, что вставляемый узел не является предком того, чьим потомком он становится. Нарушение любого из этих условий вызывает исключение InvalidOperationException.
Допустимо добавлять или удалять дочерний элемент с атрибутом "только для чтения" из узла, который можно изменять. Однако попытка изменить узел, доступный только для чтения, вызывает исключение InvalidOperationException. Примером этого является изменение дочерних элементов узла XmlEntityReference. Дочерние элементы доступны только для чтения и не могут быть изменены. Любая попытка изменить их вызывает InvalidOperationException.