2015-11-27 36 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

試圖轉換文件之前閱讀到數據集? –