0
我正拉着我的頭髮試圖將XML文件讀取到二維數組中。我真的不知道爲什麼錯誤出現。事實上,我還沒有完成陣列部分。 XML文件看起來像這樣:將xml文件加載到多維數組中
<?xml version="1.0" encoding="UTF-8"?>
-<TERMINAL_MESSAGE_FILE>
-<MESSAGE>
<LABEL>LABEL1</LABEL>
<MSG>MESSAGE1</MSG>
</MESSAGE>
-<MESSAGE>
<LABEL>LABEL2</LABEL>
<MSG>MESSAGE2</MSG>
</MESSAGE>
</TERMINAL_MESSAGE_FILE>
所有元素值的來自陣列,messageArray [2]。由於我對XML很陌生,所以我不可能創建這個權利。
現在我從文件對話框控件中獲取文件名。這裏是我使用的代碼:「未設置爲一個對象的實例對象引用」
class message
{
public string _label{ get; set; }
public string _message{ get; set; }
}
public partial class messageForm : Form
{
InitializeComponent();
}
private loadBTN_Click(object sender, EventArgs e)
{
DialogResult result = openMsgFD.ShowDialog();
if (result == DialogResult.OK)
{
XDocument doc = XDocument.Load(openMsgFD.FileName);
var settingsList = (from element in doc.Root.Elements("MESSAGE")
select new message
{
_label = element.Attribute("LABEL").Value,
_message= element.Attribute("MESSAGE").Value
}).ToList();
// will need to deal with putting this into the array but I haven't got that far yet.
}
}
所以我得到的錯誤是 事情是我從許多例子中複製了這段代碼,我已經看到和稍微有點不同,但我總是得到這個錯誤。我嘗試過使用streamReader和streamWriter,但是MESSGAE.VALUE中有回車符,所以我無法使它工作。 任何幫助將不勝感激。謝謝,湯姆
LABEL和味精是孩子*元素*,而不是* MESSAGE元素的屬性*。 –
出於好奇,爲什麼多維數組?爲什麼不從LINQ中收集對象('List')?如果標籤是唯一的,則可以使用標籤作爲鍵和消息作爲值的詞典。 –
Tim