【问题标题】:Passing XML from XSLT to C# function将 XML 从 XSLT 传递到 C# 函数
【发布时间】:2013-05-02 07:04:04
【问题描述】:

我有一个 XSLT 变量 resultxml,它包含一个完整的 xml。现在我想把这个 XML 保存到一个 xml 文件中。

我写了一些这样的代码 在 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 结构并将其保存在文件中?

【问题讨论】:

  • 您是否尝试使用 XmlDocument::Save。例如见msdn: XmlDocument.Save Method
  • @hr_117 我不能使用它,因为我在“xmls”处得到纯字符串。首先我需要在我的函数“SaveXML”中获取正确的 xml,以便我可以保存它
  • 请告诉我们你在哪里以及如何定义和初始化变量$resultxml,我们需要知道它的类型和值。

标签: c# asp.net xml xslt xslt-1.0


【解决方案1】:

假设您从 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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-02
    • 2020-08-29
    • 2017-01-07
    • 1970-01-01
    • 2013-04-26
    • 2015-05-21
    • 2014-08-05
    • 1970-01-01
    相关资源
    最近更新 更多