【发布时间】:2020-04-25 06:34:47
【问题描述】:
我已经检查了 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>
我正在尝试读取<cmd name="cat"> 的子节点<code>,您可以看到它包含几行。
我的实际代码是:
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)被剥离。我需要按原样获取文本,不进行任何连接或重新格式化,但不知道如何实现。
我尝试了多个选项,但找不到解决方案。
谢谢。
【问题讨论】:
标签: c# xml linq-to-xml xelement