Dinesh Kumar Dora Ответов: 1

C# как добавить новый атрибут в файл конфигурации XML


Здравствуйте друзья,
Один короткий вопрос.
Мне нужно сделать следующее изменение в файле конфигурации xml.
Необходимо заменить следующее:

&ЛТ;режим безопасности="TransportCredentialOnly"&ГТ;&ЛТ;транспорт значение clientcredentialtype="Windows"в/&ГТ;

с

<режим безопасности="транспорт">
&ЛТ;транспорт значение clientcredentialtype="Windows" по proxyCredentialType="никто" царство="" /&ГТ;
&ЛТ;сообщение значение clientcredentialtype="имя пользователя" алгоритмизируется="по умолчанию" /&ГТ;

Как это сделать. Пожалуйста помочь.

Что я уже пробовал:

Я попробовал погуглить и сделал что-то вроде этого...
Отображает код_формы = (отображает)xmlDoc.Метод selectsinglenode("//безопасности[@режим='TransportCredentialOnly'];
если (код_формы != нуль)
{
formId.Value = "транспорт"; // установить новое значение.
}
xmlDoc.Save("C:\\temp\\web.config");

Но я не знаю, как добавить следующие атрибуты: proxyCredentialType, clientCredentialType, algorithmSuite

1 Ответов

Рейтинг:
1

Eric Lynch

Должно сработать что-то вроде следующего.

XmlNode node = doc.SelectSingleNode("//security");
XmlAttribute attr = doc.CreateAttribute("proxyCredential");
attr.Value = "attribute-value";
node.Attributes.Append(attr);


Dinesh Kumar Dora

Супер Спасибо, Эрик.

Dinesh Kumar Dora

Эрик, я попробовал твой метод, но получаю результат вот так:
&ЛТ;режим безопасности="транспорт" proxyCredential="никто" царство=""&ГТ;
<transport clientCredentialType="Windows" />


Я хочу этого таким образом:
<режим безопасности="транспорт">
&ЛТ;транспорт значение clientcredentialtype="Windows" по proxyCredentialType="никто" царство="" /&ГТ;
&ЛТ;сообщение значение clientcredentialtype="имя пользователя" алгоритмизируется="по умолчанию" /&ГТ;

Пожалуйста помочь. как я могу получить это?

Eric Lynch

В своем вопросе вы не упомянули, что хотите изменить узел "транспорт". Чтобы изменить узел "транспорт", необходимо выполнить следующие действия:

Узел XmlNode = doc.SelectSingleNode("//безопасность/транспорт");

Вы действительно должны потратить время, чтобы изучить XPATH. Это синтаксис параметра SelectSingleNode. Тогда вы сами сможете ответить на этот вопрос. Я оставлю изменение узла сообщения в качестве учебного упражнения :)

Дополнительные сведения о синтаксисе XPATH см. В следующих разделах:

https://www.w3schools.com/xml/xpath_syntax.asp

Для получения дополнительной информации о SelectSingleNode см. Следующее:

https://docs.microsoft.com/en-us/dotnet/api/system.xml.xmlnode.selectsinglenode

Кроме того, если вы будете иметь дело с XML в долгосрочной перспективе, вы можете проверить LINQ to XML. В то время как API XmlDocument продолжает работать нормально, LINQ to XML предлагает множество преимуществ. Для получения дополнительной информации о LINQ to XML, проверьте:

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/basic-queries-linq-to-xml
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/getting-started-linq-to-xml

С LINQ, если вы не знакомы, вы можете выбрать между синтаксисом запроса и синтаксисом метода. Синтаксис запроса показан во многих примерах. Синтаксис метода больше похож на традиционный синтаксис C#. Любой синтаксис запроса также может быть выражен как синтаксис метода. Обратное неверно.

Лично я предпочитаю синтаксис метода. Либо это нормально, это зависит от вас, что работает лучше для вас. По сути, синтаксис метода-это ряд расширений интерфейса IEnumerable. В следующей статье обобщаются доступные методы:

https://www.codeproject.com/Articles/1240219/LINQ-Part-Standard-Methods-Tools-in-the-Toolbox