2013-05-02 84 views
0

我得到一個XSLT變量resultxml,它包含一個完整的xml。現在我想將這個XML保存到一個xml文件中。將XML從XSLT傳遞到C#函數

我寫了這樣 一些代碼在XSLT

<xsl:value-of select="XSLTHelper:SaveXML($resultxml)"/> 

在C#

public static void SaveXML(string xmls) 
{ 
    File.WriteAllText(HttpContext.Current.Server.MapPath("~/App_Data/missing_data.xml"), xmls.ToString()); 
} 

數據正確,但不保存在XML格式只是一個字符串值。是否有任何方法可以維護我的XML結構並將其保存在File中?

+0

您是否嘗試使用XmlDocument :: Save。例如,請參見[msdn:XmlDocument.Save方法](http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.save(v = vs.71).aspx) – 2013-05-02 08:03:52

+0

@ hr_117我可以't使用這個,因爲我在「xmls」處獲得純字符串。首先,我需要的是在我的函數「SaveXML」中獲得正確的xml,以便我可以保存它 – Athul 2013-05-02 08:07:49

+0

請向我們展示確切的位置以及如何定義和初始化變量' $ resultxml',我們需要知道它的類型和值。 – 2013-05-02 08:51:07

回答

0

假設你從XSLT一些節點,而不是通過你可能想嘗試使用

public static void SaveXML(XPathNodeIterator nodes) 
{ 
    foreach (XPathNavigator node in nodes) 
    { 
    using (XmlWriter xw = XmlWriter.Create(HttpContext.Current.Server.MapPath("~/App_Data/missing_data.xml"))) 
    { 
     node.WriteSubtree(xw); 
    } 
    } 
} 

代替public static void SaveXML(string xmls)是否給你你想要的結果的字符串。當然,如果你真的把幾個節點傳遞給你的函數,我發佈的寫入單個文件的代碼是無稽之談,但是假設你傳入單個節點,它應該將其寫入文件HttpContext.Current.Server.MapPath("~/App_Data/missing_data.xml")