1

我有一个使用 DataGridView 来显示 XML 文件内容的 UI。

如果 XmlNode 只包含 InnerText,这很简单,但是我遇到了包含子节点(而不仅仅是字符串)的节点的问题。

简单的

<node>value</node>

在 DataGridViewCell 中显示为“值”。

复杂的

<node>
    <foo>bar</foo>
    <foo2>bar</foo2>
</node> 

问题是 InnerXml 代码不是预期的,并且很难在 UI 中修改。

我尝试使用 XmlTextWriter 来“美化”字符串 - 它工作得很好,但是需要一个 XmlNode(包括节点,不仅包括子节点)而且我无法将它分配回 InnerXml。

我想在 UI 中看到以下内容:

<foo>bar</foo>
<foo2>bar</foo2>

(这可以在之后分配给 InnerXml)

或者

<node>
    <foo>bar</foo>
    <foo2>bar</foo2>
</node> 

(并找到一种方法如何用这个字符串替换 OuterXml)。

感谢您的任何想法,马丁

4

1 回答 1

0

您可以加载OuterXmlto XElement,然后使用以连接由换行符分隔String.Join()的根节点的所有子元素(在其他角度来看, the ),例如:InnerXml

XElement e = e.Parse(something.OuterXml);
var result = string.Join(
                          Environment.NewLine, 
                          e.Elements().Select(o => o.ToString())
                        );
于 2014-08-08T01:20:10.930 回答