edycja pliku xml / dodanie linii pod wyszukiwana linią

0

Hej.
Mam problem z edycja pliku web.config
Chcę dodać linię w fragmencie tekstu. Wyszukuję linii która zaczyna się rewriteMap name i chcę pod nią dodać tekst.
Najłatwiejszym jednak sposobem będzie zrobienie wyszukiwania tekstu i dodania linii.

Mam takie coś jak na razie i działa, ale dodaje linię na końcu pliku.

string fName = "d:/web.config";
            StreamReader webTxt = new StreamReader(fName);
            string allRead = testTxt.ReadToEnd();
            web.Txt.Close();
            string regMatch = "rewriteMap name";


           if (Regex.IsMatch(allRead, regMatch))
            {
                       
                StreamWriter sw;
                sw = File.AppendText("d:/web.config");

                sw.WriteLine(TextBox1.Text);
                sw.WriteLine("<add key = " +TextBox1.Text + "/>");
                sw.Close(); 
             }

Możecie jakoś podpowiedzieć częścią kodu co dodać lub na coś naprowadzić?
Pozdrawiam

0

Append ustawia pozycję kursora na ostatnią linię.
Może istnieje funkcja typu seek, która pozwala ustawić kursor?

0

Poleciałem tak, trochę nieładnie, nieelegancko, ale swoje zadanie na daną chwilę robi.

string filePath = "d:/web.config";
            string searchText = "<add key=fake key>";
            string replaceText = "<add key=fake key>" + System.Environment.NewLine + "<add key="+ TextBox1.Text + " value="+TextBox2.Text+ "/>";
            
            StreamReader sr = new StreamReader(filePath);
            string content = sr.ReadToEnd();
            sr.Close();

            content = Regex.Replace(content, searchText, replaceText);
            StreamWriter sw = new StreamWriter(filePath);
            sw.Write(content);
            sw.Close();
1

Dam sobie raciczkę uciąć, że web.config to plik XML, a przetwarzanie XML jest raczej banalne...

1 użytkowników online, w tym zalogowanych: 0, gości: 1