2009-12-19 48 views
0

我對將信息寫入XML文件感到厭倦。如何在XML文件中寫入我的信息?

我想保存文字字符串和圖像。

我有不知道如何編寫XML文件的語法。當我Visual Studio創建一個XML文件,2008年所有的文件有是這樣的:

<?xml version="1.0" encoding="utf-8" ?> 

所以我對如何添加的東西沒有任何線索。

**編輯:我知道XML是什麼,我只是不知道如何去設置事情。我知道我可以通過節點等搜索

我會做類似:

<Person> 
    <Name> 
     Sergio 
    </Name> 
    <LastName> 
     Castedo 
    </LastName> 
</Person> 

意思,我可以寫我的樹人的方式我想還是有嚴格的辦法嗎?

+0

XML不是存儲圖像的很好格式,因爲XML僅爲文本。它可以使用base64編碼之類的東西來完成,但是通過二進制格式使用XML你並沒有真正獲得任何東西。 – itowlson

+0

是的,您可以根據XML語法的規則以任何方式編寫您的樹。沒有定義元素,在元素和屬性之間進行選擇,縮進,突破線等的「嚴格方法」。 – itowlson

回答

2

XML的語法與HTML非常相似,只是存儲結構可以描述存儲的數據,不過您更喜歡。開始學習XML的好地方是W3School's Tutorial on XML

+1

...一旦您掌握了底層語法,請參閱API的XmlDocument,XmlWriter和/或XDocument類,以便使用.NET將數據寫入XML。 – itowlson

+0

呵呵,XmlSerializer提供了一個簡單的API來將XML文檔映射到對象圖形,反之亦然。 – itowlson

0

關於XML的好處是,您可以以任何您想要的方式組織它。例如:

<file> 
    <image>1234567890ABCDEFG ... Hex data stream example</image> 
    <caption>This is a picture of ... whatever</caption> 
</file> 

XML是一種「人類可讀」的數據存儲方式。你熟悉類或結構嗎?兩者都允許您以任何您可以想象的方式(使用任何可用類型)定義數據類型。 XML是類似的,你可以定義一個新的數據類型(至少,這可能是一個方便的方法來查看它)。

你想如何存儲數據? XML是最好的方式嗎?您應該如何在結構化文檔中組織信息?在繼續之前,這些是你應該回答的幾個問題。上面的示例可能不會表達您正在考慮的內容,但可以進行修改以適應您的需求。

從您對數據存儲需求的描述中,您可能會將字符串轉儲到您選擇的標記(無論您決定應該是什麼)之間。至於圖像,你可能想要十六進制轉儲的內容或基地64編碼它們並轉儲結果字符串。不要忘記圖像格式。

+0

這對你有幫助嗎Papuccino1?如果您需要更多幫助,我可以進一步闡述。 –

+0

您好,感謝您的幫助。我基本上在尋找XML來保存我的程序將顯示的信息,因爲它很簡單,它非常適合我希望它提供的用途。當被要求時推出信息,就是這樣。我猜測我只能保存字符串,但如果我想保存一個圖像,最好是將它的位置保存在正確的資源中?我只想組織一些事情,這樣我就可以在我的程序中使用泛型方法。 –

-1

我認爲你應該谷歌「什麼是XML」。認真。我不想成爲一個屁股。

1

正如其他人說你沒有寫自己的語法。您可以使用System.Xml命名空間中的XmlTextWriter類很容易地創建XML文件。爲了保存圖像,您可以將圖像的原始字節轉換爲帶有Convert.ToBase64String的Base64編碼字符串,並將它們保存在文件中。

XmlTextWriter outputWriter = new XmlTextWriter(@"C:\somefile.xml", Encoding.Default); 
outputWriter.WriteStartDocument(); 
outputWriter.WriteStartElement("main") 
outputWriter.WriteStartElement("with_attributes") 
outputWriter.WriteAttributeString("attribute", "value"); 
outputWriter.WriteEndElement(); 
outputWriter.WriteStartElement("image"); 
outputWriter.WriteCData(Convert.ToBase64String(myByteArray)); 
outputWriter.WriteEndElement(); 
outputWriter.WriteEndElement(); 

它的所有非常簡單的東西。