@mletov

Как отредактировать XML файл с префиксами пространств имен через Linq to XML?

Пожалуйста, подскажите:
Необходимо создать XML файл с тегами такого вида
<mecp:RoomCount part="15.2.6">3</mecp:RoomCount>

Когда создаю файл с нуля - проблем нет .
Добавляю корневому элементу пространства имен
foreach (KeyValuePair<string, XNamespace> item in dctNameSpace)
                                    {
                                        _xNode.Add(new XAttribute(XNamespace.Xmlns + item.Key, item.Value.NamespaceName));
                                    }

Потом создаю элементы
xWorkDay.Add(new XElement(mecdv + "DayOfWeek", new XAttribute("part", "1.3.1"), item.WeekDay));


все нормально.

Но вот понадобилось отредактировать существующий xml файл с уже готовой структурой и заданными пространствами имен.

И точно такой же код добавления вместо
<mecp:RoomCount>3</mecp:RoomCount>
Добавляет тег
<RoomCount xmlns="fdsfsfdfgvdfg">3</RoomCount>
Т е вместо префикса вставляет атрибут пространства имен xmlns.
Пробовал удалить из рутового элемента атрибуты пространств имен и прописать заново.
Тогда наоборот, новые атрибуты создаются нормально с префиксами, а у ранее существующих заменяются на xmnls

Делал по документации
https://docs.microsoft.com/en-us/dotnet/csharp/pro...
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@mletov Автор вопроса
Решил. Пространства имен надо было не удалять/пересоздавать, а получить имеющиеся, и уже на их основе создавать элементы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы