2015-01-26 2 views
0
<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     ... 
    <connectionStrings> 
     ... 
    </connectionStrings> 
    <applicationSettings> 
     <Settings> 
      ... 
      <setting name="ServerConfig" serializeAs="String"> 
       <value>STAGE</value> 
      </setting> 
      ... 
     </Settings> 
    </applicationSettings> 
</configuration> 

XML элемента У меня есть выше структура XML, а также для целей тестирования я пытаюсь бросить вместе приложение, которое изменит значение элемента SERVERCONFIG быть другой строкой (ЭТАП, производство, ВНУТРЕННИЙ). Я не уверен, как перейти и обновить это значение.C# обновления глубоко вложенного значение

Edit:

XmlDocument xml = new XmlDocument(); 
      xml.Load("doc.xml"); 

      foreach (XmlElement element in xml.SelectNodes("setting")) 
      { 
       foreach (XmlElement child in element) 
       { 
        if (element.SelectSingleNode("value").InnerText == "STAGE") 
        { 
         MessageBox.Show(child.InnerText); 
        } 
       } 
      } 

Это код, который я пытался получить работу, но не могу показаться, чтобы получить значение. Я хочу иметь возможность выбрать параметр с атрибутом имени «ServerConfig» и изменить значение элемента value.

+0

Что вы используете, чтобы управлять структурой XML? Linq для XML или что-то еще? – Guvante

+0

[XPath] (https://msdn.microsoft.com/en-us/library/ms256086 (v = vs.110) .aspx) - это то, что вы, вероятно, ищете. – Phylogenesis

+0

Чтобы обновить раздел 'applicationSettings', см. Дубликат. Чтобы редактировать XML в целом, попробуйте выполнить поиск еще, это было задано ранее. См. Например, [C#: Изменить узел xml] (http://stackoverflow.com/questions/9616163/c-sharp-modify-a-xml-node). – CodeCaster

ответ

0

Я рекомендую использовать расширение Slow Cheetah Visual Studio. Он позволяет изменять настройки вашего приложения для каждого отдельного определения сборки с помощью преобразований xml.

Вы можете найти более подробную информацию о Slow Cheetah here

+0

Это небольшое приложение, которое я взбиваю вместе как тестер, чтобы автоматизировать этот процесс. Я уже делал это в autohotkey, но я перехожу к переписыванию его на C#. –

Смежные вопросы