【发布时间】:2014-08-07 16:00:56
【问题描述】:
我有一个使用 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)。
感谢您的任何想法, 马丁
【问题讨论】:
-
如何将 xml 分配给 DataGridView?
node是您 xml 的元素根吗? -
您好 Sergey,我将 InnerXml(可以是 XML 的简单值)作为值传递。节点不是根元素,它可以包含任何值
-
很难说你在做什么以及你期望得到什么结果。如果您能展示一些示例 xml、将其绑定到网格的方式、您现在拥有的结果(可能是网格的屏幕截图)以及您想要的结果,那就太好了
-
你好 Sergey,没有绑定(不幸的是结果是合并了不同的文档)。每个 DataRow 代表一个对象,每列代表一个值。该值可以是简单的字符串
value 或可以包含子元素。 XML 示例:<root> <server> <name>ABC</name> <vhds> <vhd>1</vhd> <vhd>2</vhd> </vhds> </server> </root>在 DataGrid 中,它应该将 Name 显示为一列(值为 ABC),VHDs 显示为另一列(值为1 2 ) -
很抱歉,被取消了。那么,你有单列的 DataTable,你有一些 xml?
标签: c# xml xmltextwriter