Как изменить имя xml нода? - CodeHelper

Как изменить имя xml нода?

2

Скажем, перебираю я узлы xml-дерева с помощью XPathNavigator и встречаю узел, имя которого мне нужно изменить. Как это сделать? Напрямую не получится, да. Тут нужно создавать новый узел с нужным именем, копировать в него содержимое старого узла и заменять старый на новый. Я знаю, как это делать, используя XmlElement, но не знаю, как из XPathNavigator, установленного на нужный элемент, получить XmlElemnt. Есть идеи?

Новые ответы


2

Можно заменить имя нода прямо в тексте текущего узла. Конечно, это небезопасно, но как крайняя мера может подойти:

var currentNode = navigator.OuterXml;
currentNode = currentNode.Replace("oldNode", "newNode"); 1
navigator.ReplaceSelf(currentNode);

Для пущей безопасности в точке 1 можно использовать не глупый Replace, а что-нибудь с регулярными выражениями.

Alexander

Да, тоже пришел к этому мнению, полистав форумы. Лучшего решения не нашел. Странно.


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.