Каков наилучший способ обновить значение узла XML в C #? - PullRequest
1 голос
/ 02 декабря 2008

Моя функция перебирает все узлы экземпляра XMLDocument. Он проверяет, находится ли имя текущего узла в списке поиска. Если это так, он применяет соответствующую проверку к значению текущего узла.

Когда метод проверки указывает, что значение было изменено, я хочу заменить значение в исходном документе на обновленное значение.

Я думаю, что самым простым способом достижения этого может быть запись в XMLTextWriter, когда я обрабатываю каждый узел в исходном XMLDocument, либо записывая исходный или измененный узел и значение в зависимости от ситуации. Этот метод будет основываться на определении того, имеет ли текущий узел дочерние элементы или является автономным узлом.

Есть ли лучший способ обновить значения в исходном документе? Мне нужно закончить с полным XMLDocument, но с обновленными значениями узлов, где это уместно.

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 02 декабря 2008

Не можете ли вы изменить существующие узлы (которые уже были в правильной структуре и в XMLDocument, а затем повторно сериализовать XMLDocument? Если узлы являются простыми текстовыми контейнерами, то

.InnerText

свойство - это то, что вам нужно.

1 голос
/ 02 декабря 2008

Я знаю, что всегда возвращаюсь к этому, но это звучит как пример, где разумное использование apply-шаблонов и ExtensionObjects в XSLT будет эффективным.

При этом XMLDocument оптимизирован для модификации, поэтому, если вы собираетесь использовать чисто программное решение, я бы изменил объект напрямую, а не создал новый Writer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...