我正在使用的文件格式(OFX)類似於XML,並且在類XML位開始之前包含一堆純文本內容。它不喜歡在純文本和XML部分之間,所以我想知道是否有辦法讓XmlSerialiser忽略它。我知道我可以通過這個文件並清除那條線,但是不要把它寫在第一位就更簡單和更清潔!有任何想法嗎?如何讓XmlSerialiser不以<?xml ?>開頭?
1
A
回答
4
不是太強悍,你只需要序列化到一個明確聲明的XmlWriter,並在序列化之前在該writer上設置選項。
public static string SerializeExplicit(SomeObject obj)
{
XmlWriterSettings settings;
settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
XmlSerializerNamespaces ns;
ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlSerializer serializer;
serializer = new XmlSerializer(typeof(SomeObject));
//Or, you can pass a stream in to this function and serialize to it.
// or a file, or whatever - this just returns the string for demo purposes.
StringBuilder sb = new StringBuilder();
using(var xwriter = XmlWriter.Create(sb, settings))
{
serializer.Serialize(xwriter, obj, ns);
return sb.ToString();
}
}
6
您必須在調用Serialize
方法時操作您使用的XML編寫器對象。其Settings
屬性有一個OmitXmlDeclaration
屬性,您希望將其設置爲true。您還需要設置ConformanceLevel
屬性,否則XmlWriter將忽略OmitXmlDeclaration
屬性。
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
XmlWriter writer = XmlWriter.Create(/*whatever stream you need*/,settings);
serializer.Serialize(writer,objectToSerialize);
writer.close();
相關問題
- 1. Android版式以<?xml版本開頭...?>
- 2. XML :: Twig:如何指定一個以下劃線開頭的<_tag>的twig_handler?
- 3. PI不能以xml開頭
- 4. HTML電子郵件應該以<html><body><head> ...開頭嗎?
- 5. 如何刪除從<tag>開始並以</tag>
- 6. 如何使Beautifulsoup不添加<html>或<?xml ?>
- 7. 如何使用jQuery將<tbody>添加到<table>的開頭?
- 8. XML名稱不能以'%'字符開頭
- 9. 如何改變XML標籤格式就像<xml></xml>到<xml/>
- 10. 如何開始<textarea>
- 11. 的Javascript在開頭刪除字符串和以下字符串</p> <pre><code>...here.. ..there... .their.here. </code></pre> <p>結束
- 12. 如何在.NET中檢查IEnumerable <T>是否以另一個IEnumerable <T>開頭?
- 13. 如何在箭頭下方添加<<flow>>?
- 14. 如何設計<details><summary>元素的箭頭?
- 15. 如何添加項目到名單<T>的開頭?
- 16. 如何找到在如表中如何可以找到所有的<strong><em>不同的值,其在數據列</em></strong></p> <p>的第一個字母爲如開頭所示聲明的MySQL
- 17. SpTBX:如何讓製表符集內的「<< >>」按鈕
- 18. 如何讓f.text_field + 「<div>there is a error</div>」 工作
- 19. WCF響應離開<xml header>
- 20. 薩翁:如何頭球被<env:Header>到<soap:Header>或不同的東西
- 21. <?xml-stylesheet?>如果之前給出<?xml?>在firefox中不起作用
- 22. Java的正則表達式來把不以#開頭的內部<p></p>標籤
- 23. 如何避免在SQL中存儲XML <option></option>像<option />?
- 24. C頭<stdio.h>
- 25. java + xml:庫處理來自<?xml ?>頭的編碼?
- 26. 將XML反序列化爲<ArrayOf>以列表<>
- 27. 我的json以XML開頭<string> [{.....}]</string>我如何解析它我試過很多東西沒有任何效果
- 28. 「查看頁面源代碼」頁面不是以<!Doctype html>開頭的
- 29. 如何讓工頭開始神
- 30. 如何讓開放時間函數頭
道歉;事實證明ConformanceLevel部分使得serializer.Serialize拋出異常。所以我已經推出了'接受'從你下面! :)當然,你仍然會得到讚賞,並且'謝謝你'! – 2009-09-09 14:03:18