Запись в xml с C#

#c# #xml #linq

#c# #xml #linq

Вопрос:

У меня есть вопрос о записи в xml с помощью C #. Я хочу такую структуру;

 <directory_move>
   <folder_path>
      <source_path>...</source_path>
      ..
      ..
   </folder_path>
   <properties>
      <aaabbcc>....</aaabbcc>
      ..
      ..
   </properties>
</directory_move>
  

Я так много пытался, но не смог получить то, что я хочу.
Можете ли вы дать совет, как я могу это сделать?

это мой код

         XElement element = new XElement("DIRECTORY_MOVE");

        foreach (string sourceDirName in listArray)
        {
            element.Add(new XElement("SOURCE_PATH", sourceDirName));
        }

        element.Add(new XElement("DESTINATION_PATH", destination));


        if (rdbtnDoLater)
        {
            element.Add(new XElement("RDBTNDOLATER", "checked"));
        }

        if (rdbtnDoImmediately)
        {
            element.Add(new XElement("RDBTNDOIMMEDIATELY", "checked"));
        }

        if (chkIsOverwrite)
        {
            element.Add(new XElement("CHKISOVERWRİTE", "checked"));
        }

        if (chkExitWhenFinish)
        {
            element.Add(new XElement("CHKEXITWHENFINISH", "checked"));
        }

        if (chkFolderQuestion)
        {
            element.Add(new XElement("CHKFOLDERQUESTION", "checked"));
        }
  

Комментарии:

1. Ваш вопрос требует более подробной информации. Не могли бы вы предоставить код C # вашей попытки сгенерировать XML?

2. 1 за исправление операции для включения вашего кода.

3. Посмотрите правку, которую я сделал в своем ответе, я думаю, она должна быть близка к тому, что вы хотите.

Ответ №1:

Использование Linq to XML

 XElement example =
    new XElement("directory_move",
        new XElement("folder_path",
            new XElement("source_path", "..."),
            new XElement("source_path", "...")
        ),
        new XElement("properties",
            new XElement("aaabbcc", ...)
        )
    );

example.WriteToFile(...)
  

Редактировать: Проблема с вашим кодом заключается в том, что вы добавляете все к корневому элементу, поэтому все будет дочерними элементами этого корня.

Что вам нужно сделать, так это воспроизвести иерархию, как я сделал в своем примере.

 XElement root = new XElement("DIRECTORY_MOVE");
XElement folderPath = new XElement("folder_path");

root.Add(folderPath)

foreach (string sourceDirName in listArray)
{
     folderPath.Add(new XElement("SOURCE_PATH", sourceDirName));
}
  

и так далее…

Комментарии:

1. Большое вам спасибо! Это решение моей проблемы.