Изменение XML-документа с использованием C # Linq - PullRequest
0 голосов
/ 03 января 2019

У меня есть приложение, которое просматривает XML, а затем загружает файлы из URL-адресов в файле. Мой формат XML выглядит следующим образом:

<FileDownloads>
<Downloads ID="1">
    <FriendlyName>MyFile</FriendlyName>
    <URL>http://www.MyDownloadURL.com?p=m/MyFileName</URL>
    <FileLocation>Tools\MyFIleName.exe</FileLocation>
<Selected>true</Selected>
<Switches></Switches>
</Downloads>

У меня проблемы с изменением элементовXML IE: URL-адрес, если он изменяется, а также добавление и удаление целых элементов с помощью Xelement.

Я пытаюсь код ниже:

public void NewXML()
    {
        try
        {
            XDocument XDocAdd = XDocument.Load(path);
            XElement DL = new XElement("Downloads");
            DL.Add(new XElement("FriendlyName", prl.textBox_FN.Text));
            DL.Add(new XElement("URL", prl.textBoxURL.Text));
            DL.Add(new XElement("FileLocation", prl.textBoxFL.Text));
            DL.Add(new XElement("Selected", prl.checkBox_DL.Checked));
            DL.Add(new XElement("Switches", prl.textBox_Switches.Text));
            XDocAdd.Element("FileDownloads").Add(DL);
           XDocAdd.Save(@"C:\Test\Test10.xml");
        }
        catch (Exception err)
        {
            MessageBox.Show(err.Message);
            MessageBox.Show(err.InnerException.ToString());
        }


    }

Я очень нуб, поэтому любойпомощь была бы отличной !!

1 Ответ

0 голосов
/ 03 января 2019

Попробуйте это:

XElement DL = new XElement("Downloads",
                  new XElement("FriendlyName", prl.textBox_FN.Text),
                  new XElement("URL", prl.textBoxURL.Text),
                  new XElement("FileLocation", prl.textBoxFL.Text),
                  new XElement("Selected", prl.checkBox_DL.Checked),
                  new XElement("Switches", prl.textBox_Switches.Text));
XDocAdd.Element("FileDownloads").Add(DL);

Когда вы создаете XML с помощью XElement, вам нужно добавить их в соответствии с вашей схемой.

...