2014-06-25 24 views
1

從標題中可以清楚地看到,我想在我的Silverlight 5應用程序中以特定路徑創建XML文檔。我知道我們可以使用XDocumentSystem.Xml.Linq中創建XML文件。據我所知,如果我們使用XDocument,該文件將在「我的文檔」文件夾中創建。如何將XML文檔保存到所需的路徑?在沒有「保存文件對話框」的情況下,是否有可能將XML文檔保存到期望的路徑並提升Silverlight 5的信任度?在給定路徑下創建XML文檔

UPDATE:雖然有如下方法:XDocumentSave()可用有在Silverlight 5,其接受string參數否則這將是容易送路徑Save()沒有過載Save()。我試圖用StreamWriter保存。下面是我的代碼:

using (var outfile = new StreamWriter(@"C:\Users\Tejas\Desktop\Sample.xml")) 
{ 
     var doc = new XDocument(new XElement("Root", new XElement("Child", "content"))); 
     doc.Save(outfile); 
} 

但它給我System.Security.SecurityException與消息File operation not permitted. Access to path 'C:\Users\Tejas\Desktop\Sample.xml' is denied.是不是因爲我的Silverlight 5應用程序不被信任?還有一件事我想提我不想用「SaveFileDialog」來實現它。

+0

['XDocument.Save()'](HTTP:/ /msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.save%28v=vs.110%29.aspx) – har07

+0

@ har07。謝謝你的線索..!但是'Save()'沒有超載接受字符串作爲參數,所以我可以將路徑傳遞給'Save()'。我怎樣才能使用'Stream'或TextWriter'或'XmlWriter'?請幫忙。 –

回答

1

您可以根據需要創建您的XDocument,並使用您喜歡的XML結構填充它。 最後,您可以調用XDocument上的Save方法將其保存到某個位置。

一個很簡單的例子,假設你要保存的位置 'C:\ myXMLFolder \ newXMLfiles \ file.xml':

XDocument doc = new XDocument(
    new XElement("Root", 
     new XElement("Child", "content") 
    ) 
); 
doc.Save("c:\\myXMLFolder\\newXMLfiles\\file.xml"); 
+0

我試着使用'Save()'方法,但它不接受'string'參數。它只接受'Stream'或'TextWriter'或'XmlWriter'。你能告訴我我要去哪裏嗎? –

+0

它應該存在:http://msdn.microsoft.com/en-us/library/bb345830(v=vs.110).aspx 此方法似乎僅適用於.NET Framework 3.5,4和4.5。所以你可能需要交叉檢查你的框架版本是否在這個範圍內。 – Jeepx

+0

Silverlight 5框架似乎不支持'Save()'接受'string'參數的重載。 :-(我嘗試下面的代碼來創建我的桌面上的文件,但它並沒有出現在那裏: var sb = new StringBuilder(@「C:\ Users \ Tejas \ Desktop \ Sample.xml」); var doc =新的XDocument(新的XElement(「根」,新的XElement(「兒童」,「內容」))); TextWriter tr = new StringWriter(sb); doc.Save(tr);' –