我一直在這個問題上停留了兩天,仍然沒有成功,我正在尋求一些幫助。XMLSerializer - 添加到名稱空間的類?
我Listbox
獲取生成項目添加到它取決於在Combobox
選擇的項目。當我點擊按鈕Create
時,出現一個新的窗口,其中有一個WebBrowser
對象。
(Wasnt允許所以它包含在鏈接上傳圖片)
這是與生成的項目,並單擊該按鈕列表框中的畫面。
按鈕單擊事件
這得到在組合框中選擇的項目。然後它創建一個Alrighty類的新實例,其中包含項目列表(來自列表框的項目)的名爲標準的屬性。該屬性填充第三行,然後我有另一個名爲SaveXML的類(見下文),這保存在XML中。然後將打開瀏覽器。
string selectedStandard = (string)cmbStandard.SelectedItem;
Alrighty info = new Alrighty();
info.Standards = _standardDefinitions;
SaveXML.SaveData(info, string.Format("{0}.xml", selectedStandard));
HTMLBrowser boss = new HTMLBrowser(selectedStandard);
boss.Show();
SaveXML類
public static void SaveData(object obj, string filename)
{
XmlSerializer sr = new XmlSerializer(obj.GetType());
TextWriter writer = new StreamWriter(filename);
sr.Serialize(writer, obj);
writer.Close();
}
的問題
當我點擊按鈕,獲得到與Web Browser
這個代碼的窗口出現:
你可以從藍色框中看到,當我刪除此代碼,並在我的Stylesheet
一切正常添加代碼,但問題是不斷得到所產生的藍色方塊的代碼,有沒有辦法來不了此代碼在創建的XML
文件中。
額外
我怎樣才能得到這個字符串出現,而不是在藍框生成的代碼:
<?xml-stylesheet type="text/xsl" href="StandardXS.xsl"?>
編輯:
public class SaveXML
{
public static void SaveData(object obj, string filename)
{
//empty namespace and empty value
XmlSerializerNamespaces alright = new XmlSerializerNamespaces();
alright.Add("", "");
XmlSerializer sr = new XmlSerializer(obj.GetType());
TextWriter writer = new StreamWriter(filename);
sr.Serialize(writer, obj, alright);
writer.Close();
}
public void WriteXml(XmlWriter writer) { writer.WriteAttributeString(@"<?xml-stylesheet type=text/xsl href=StandardXS.xsl?>", string.Empty); }
}
謝謝您的回答,它刪除了所有的東西,在藍框,但沒有刪除實際標籤。 –
user3507542
Alrighty是你班上的名字。如果不想該標籤序列化,你將需要實現IXmlSerializable的貫徹和中WriteXML如果你想讀的ReadXml –
是否有可能獲得標籤'<?xml-stylesheet type =「text/xsl」href =「StandardXS.xsl」?>'出現? – user3507542