Pisanie do XML za pomocą XDocument, ale wiedząc, gdzie pisać

Mam nadzieję, że możesz mi trochę pomóc. Próbuję napisać do pliku XML, ale staram się napisać metodę, która dobrze zapisuje do pliku XML. Jest to plik XML napisany ręcznie (za pomocą Notepad ++ itp.):

<software>
    <software_entry
    name="Adobe Acrobat X Standard"
    path="Applications\Acrobat\Acrobat X Standard\AcroStan.msi" 
    type="msi"
    switches="/qn ALLUSERS=1"
    />

    <software_entry
    name="Adobe Acrobat X Professional"
    path="Applications\Acrobat\Acrobat X Pro\AcroPro.msi"
    type="msi"
    switches="/qn ALLUSERS=1"
    />
</software>

Celem tej części aplikacji jest napisanie tego za pomocą GUI.

W aplikacji użytkownik wybiera nazwę pliku XML. Jest on następnie zapisywany w folderze tymczasowym aż do momentu, gdy użytkownik zostanie zapytany, gdzie chciałby go zapisać. Po wprowadzeniu żądanej nazwy pliku i kliknięciu Utwórz, uruchamiana jest metoda o nazwie „createAndLoadXML”. Jak sugeruje jego nazwa, tworzy i ładuje plik XML (aby wypełnić formant listview w formularzu). Kod można zobaczyć poniżej.

private void createAndLoadXML()
{
    // Method to create XML file based on name entered by user
    string tempPath = Path.GetTempPath();
    string configFileName = fileNameTextBox.Text;
    string configPath = tempPath + configFileName + ".xml";
    // Create XDocument
    XDocument document = new XDocument(
        new XDeclaration("1.0", "utf8", "yes"),
        new XComment("This XML file defines the software selections for use with the Software Installer"),
        new XComment("XML file generated by Software Installer"),
        new XElement("software",
            new XElement("software_entry",
                new XAttribute("name", ""),
                new XAttribute("path", ""),
                new XAttribute("type", ""),
                new XAttribute("switches", ""))
                )
        );
    document.Save(configPath);
    configCreateLabel.Visible = true;
    document = XDocument.Load(configPath);
}

Teraz, w dalszej części tego formularza znajdują się 4 pola tekstowe do wprowadzania danych przez użytkownika, z których każde odnosi się do utworzonych atrybutów (nazwa, ścieżka, typ i przełączniki) Pomysł polega na tym, że użytkownik napisze w tych polach tekstowych, kliknij przycisk „Dodaj”, a następnie program zapisze te 4 pola jako atrybuty do tego pliku XML. Do tej pory mam ten kod, który jest strasznie niekompletny i nawet nie używa LINQ do XML.

private void writeToXML()
{
    // Method to write lines to XML file based on user input
    // Sets string variables
    string fileName = softwareNameTextBox.Text;
    string filePath = filePathTextBox.Text;
    string fileType = installerType.Text.ToString();
    string installSwitches = installSwitchesTextBox.Text;
    using (XmlWriter xw = XmlWriter.Load(configPath)) //This line is wrong, I know
    {
        xw.WriteStartElement("software");
        xw.WriteElementString("name", fileName);
        xw.WriteElementString("path", filePath);
        xw.WriteElementString("type", fileType);
        xw.WriteElementString("switches", installSwitches);
        xw.WriteEndElement();
    }
}

Zasadniczo, czy ktoś mógłby mi pomóc w powyższej metodzie, która zapisuje w XML dane wprowadzone przez użytkownika do kontrolek w polu tekstowym? Nie wiem, jak załadować wcześniej utworzony dokument XML (z mojej metody createAndLoadXML) i jak pisać w obrębie elementu głównego (oprogramowania) przy użyciu LINQ do XML.

questionAnswers(1)

yourAnswerToTheQuestion