2015-11-27 25 views
0

我有一个DataGridView用户输入数据。然后,用户可以将其另存为XML,由另一个应用程序监听它。用户还可以将任何预先存在的文件读回到DataGridView中。得到的保存XML看起来像这样(缩短版)试图读取XML文件到datagridview

<?xml version="1.0" encoding="us-ascii"?> 
    <jet_texts> 
     <message001> 
      <line 1 /> 
      <line 2>e</line 2> 
     </message001> 

     <message002> 
      <line 1>r</line 1> 
      <line 2>t</line 2> 
     </message002> 

     <message003> 
      <line 1 /> 
      <line 2 /> 
     </message003> 

     <message004> 
      <line 1>B</line 1> 
      <line 2>A</line 2> 
     </message004> 

</jet_texts> 

我试着通过如下

DataSet ds = new DataSet(); 
ds.ReadXml(xml_file); 
dataGridView1.DataSource = ds.Tables[0].DefaultView; 

我得到的是一条线,当我想4线我甚结合它读这回希望不包含文本的项目只是空白。我不确定为什么我无法得到它们,因为我尝试了所有我能想到的东西,但一定错过了正确的答案?

+0

它可能将每个Message001等视为表与行。您的XML元素需要具有相同的名称才能被视为在下一级元素jet_texts中重复值。如果您不控制XML,那么您可能需要对XML执行linq操作以提取包含消息的所有元素作为jet_texts节点下的名称。 – Bearcat9425

+0

如果一切都失败了,XmlReader类可以帮助你。 – Wilsu

回答

0

可能是yoe需要这样的XML吗?

<message> 
     <line 1 /> 
     <line 2>e</line 2> 
    </message> 

    <message> 
     <line 1>r</line 1> 
     <line 2>t</line 2> 
    </message> 

    <message> 
     <line 1 /> 
     <line 2 /> 
    </message> 

    <message> 
     <line 1>B</line 1> 
     <line 2>A</line 2> 
    </message> 
+0

我同意但不幸的是客户在阅读文件时需要格式化XML。所以我坚持 – user3884423

+0

试图转换文件之前阅读到数据集? –