2013-05-02 55 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")