Я уже проверил несколько вопросов, опубликованных в Stackoverflow, но кажется, что ни один из них не может решить мою ситуацию, которую я могу попытаться объяснить.
У меня есть следующий XML файл на диске (commands.xml
) со следующими содержание:
<?xml version="1.0" encoding="utf-8"?>
<categories>
<category name="Standard">
<cmd name="pwd">
<description>Get working dir.</description>
<code>echo getcwd();</code>
</cmd>
<cmd name="cat">
<description>Reads a file.</description>
<code>$fh = fopen("<<cmd>>", 'r') or die ("Cant open file");
$lines = fread($fh, filesize("<<cmd>>"));
echo "$lines";
fclose($fh);</code>
</cmd>
</category>
</categories>
Я пытаюсь прочитать дочерний узел <code>
из <cmd name="cat">
, поскольку, как вы можете видеть, он содержит несколько строк.
Мой настоящий код:
var xml = XElement.Load("commands.xml");
var query = xml.Descendants()
.Where(x => x.Name == "category" && x.Attribute("name").Value == "Standard")
.Descendants()
.Where(x => x.Name == "cmd" && x.Attribute("name").Value == "cat");
var first_query_result = query.FirstOrDefault();
if (first_query_result != null)
{
textBox_cmd_code_editor.Text = first_query_result.Descendants("code").Single().Value;
}
Проблема в том, что текст объединяется, а переходы строки (\r\n
) удаляются. Мне нужно получить текст как есть, без какой-либо конкатенации или переформатирования, но я не знаю, как этого добиться.
Я пробовал несколько вариантов, но не смог найти решение.
Спасибо .