#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. Большое вам спасибо! Это решение моей проблемы.