使用XDocument丢失换行符

5
我正在使用XML文档向TreeView添加节点。但是,当我将属性的值放入文本框中时,它似乎失去了换行符/回车符/制表符。
我首先添加了许多带有“任务名称”的节点。每个任务在XML文档中都有一个或多个查询。像这样:<Tasks><Task name="aTaskName"><Queries><add Query="一个包含制表符和换行符等的长字符串" /></Queries></Task> ... </Tasks>
void PopulateQueries(XDocument doc, TreeView tree)
{
    foreach (TreeNode node in tree.Nodes)
    {
        var taskName = node.Text;
        var queriesNode = node.Nodes.Add("Queries");
        var queries = doc.Descendants("Tasks")
            .Descendants("Task")
            .Where(d => d.Attribute("name").Value == taskName)
            .Descendants("Queries")
            .Descendants("add")
            .ToList();

        for (int i = 0; i < queries.Count;i++)
        {
            queriesNode.Nodes.Add(queries[i].Attribute("Query").Value, "query" + i);
        }
    }
}

在节点单击事件中:

void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    textBoxRaw.Text = string.Empty;
    if (e.Node.Text.StartsWith("query"))
    {
        textBoxRaw.Text = e.Node.Name;
    }
}

查询属性值包含一个带有换行符、制表符等的长SQL查询。但是,尽管我在Visual Studio中大喊大叫,但似乎没有任何东西显示在多行文本框中。我做错了什么?此外,var doc = XDocument.Load(filename, LoadOptions.PreserveWhitespace); 也似乎不起作用。

1个回答

9

哎呀,这在我的情况下并不是一个选项。 - Matthew Groves

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接