2012-06-07 36 views
1

我試圖創建並導出含有下列文件類型WP7.1.1一個的XDocument:含XDocumentType轉換的XDocument導致NotSupportedException異常

<!DOCTYPE xbel PUBLIC "+//IDN python.org//DTD XML Bookmark Exchange 
    Language 1.0//EN//XML" 
    "http://www.python.org/topics/xml/dtds/xbel-1.0.dtd"> 

不幸的是,我在我所有的嘗試NotSupportedExceptions到目前爲止迎接和我不知道如何離開這裏。這裏是事情有點摘錄我想:

/* create document */ 
var document = new XDocument(); 
var doctype = new XDocumentType("xbel", null, null, null); 
document.AddFirst(doctype); // << everything working without this line 

/* document header */ 
var version = new XAttribute("version", "1.0"); 
var root = new XElement("xbel", version); 
document.Add(root); 

/* convert to string1 */ 
var text1 = document.ToString(); // << NotSupportedException was unhandled 

/* convert to string2 */ 
var stringBuilder = new StringBuilder(); 
var stringWriter = new StringWriter(stringBuilder); 
document.Save(stringWriter); // << NotSupportedException was unhandled 
var text2 = stringBuilder.ToString(); 

這個問題可能與thisthis問題。

回答

2

這裏是我的具體問題哈克解決方案:

/* format */ 
var stringBuilder = new StringBuilder(); 
var stringWriter = new StringWriter(stringBuilder); 
document.Save(stringWriter); 
var text = stringBuilder.ToString(); 

/* document type */ 
const string subset = "<!DOCTYPE xbel PUBLIC \"+//IDN python.org//DTD XML Bookmark Exchange Language 1.0" + 
    "//EN//XML\" \"http://www.python.org/topics/xml/dtds/xbel-1.0.dtd\">"; 
return text.Replace("?>", "?>" + Environment.NewLine + subset); 

它總是難過的時候的一個框架,迫使你的缺點和錯誤寫怪這樣的代碼,但它即使這些遭遇如雪上加霜與Windows Phone一樣頻繁出現。

相關問題