【发布时间】:2020-10-08 02:57:05
【问题描述】:
我正在尝试将此 xml 放入 DataGridView 中,数据网格视图仅 显示 节点 和 值。
我尝试使用switch、case、foreach 节点,但结果节点和值仅显示在 1 列而不是 2 列。我尝试使用选择单个节点,但它显示对象错误。,
下面是代码示例:
try
{
reader = new XmlTextReader(filename);
reader.WhitespaceHandling = WhitespaceHandling.None;
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
//dataGridView1.Rows[cnt].Cells[1].Value = reader.Name;
dataGridView1.Rows.Add(reader.Name);
break;
case XmlNodeType.Text:
dataGridView1.Rows.Add("\t",reader.Value);
//dataGridView1.Rows[cnt].Cells[0].Value = reader.Value;
break;
case XmlNodeType.EndElement:
break;
}
我的导师说,使用此代码,但我不知道我的导师示例缺少什么
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("ConfigAPI.xml");
XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("/ConfigAPI");
foreach (XmlNode node in nodeList)
{
node.SelectSingleNode("UIPlayer").InnerText;
}
这里还有一个 XML 示例
<ConfigAPI>
<CoreUIAddress>http://localhost:3223</CoreUIAddress>
<CoreAppsAddress>http://localhost:3333</CoreAppsAddress>
<CoreCustomPrinterAddress>http://localhost:3001</CoreCustomPrinterAddress>
<CorePassbookPrinterAddress>http://localhost:3002</CorePassbookPrinterAddress>
<CorePrinterAddress>http://localhost:3003</CorePrinterAddress>
<CoreEDCAddress>http://localhost:3010</CoreEDCAddress>
<CoreCamAddress>http://localhost:3011</CoreCamAddress>
<CoreUPSAddress>http://localhost:3012</CoreUPSAddress>
</ConfigAPI>
通过使用第一个代码,它显示了类似这样的内容(没有“\t”)
Column 1 Column 2
core UI Adress
http localhost
core APps
http localhost
不确定如何在第二列显示数据,以便可以这样查看
Column 1 Column 2
Core Ui Adress Http Localhost
Core APPs Http Localhost
【问题讨论】:
-
您遇到的错误是什么?您可以通过编辑将其放入您的问题中吗?我也把你的问题整理了一下,希望你不要介意。无论如何+1。祝你好运!
-
你好@MickyD,当我执行第一个代码时,它没有显示错误,它在数据网格视图中显示了类似的内容。 (没有“\t”)第 1 列 Column2 CoreUI http:localhost 核心应用程序 http localhost 我试图做什么以使第 2 列的值.. 通过使用“\t”,它显示在 2n 列上,但不断跳过通过空单元格..
-
你在网格中想要什么?第1列会是?第2列会是?看起来 ConfigAPI 节点中有八个元素。此外,“\t”不会转到网格中的下一个单元格。
-
您好@JohnG,是的,我知道有 8 个不同的元素,我的导师显示了它的可能,因此该元素将像我的上一条语句一样显示,通过使用我的导师方式,它显示了这个“错误严重性代码描述Project File Line Suppression StateOnly assignment、call、increment、decrement、await和new对象表达式都可以作为语句XMLtoDataTable”。
-
嗯……第二个 sn-p 代码看起来是正确的方法。您需要更改代码,以便……代码行……
node.SelectSingleNode("UIPlayer").InnerText;……将“返回”一个值。当前代码没有得到这个“返回”值。应该是……var coreUIAddress = node.SelectSingleNode("CoreUIAddress").InnerText;……
标签: c# xml datagridview