gpt4 book ai didi

c# - 在 ASP.NET 中执行 XSLT 转换的最简化方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 01:52:39 25 4
gpt4 key购买 nike

换句话说,有没有一种更快、更简洁的方式来编写下面的代码:

//Create an object for performing XSTL transformations
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(HttpContext.Current.Server.MapPath("/xslt/" + xsltfile.Value), new XsltSettings(true, false), new XmlUrlResolver());

//Create a XmlReader object to read the XML we want to format
//XmlReader needs an input stream (StringReader)
StringReader sr = new StringReader(node.OuterXml);
XmlReader xr = XmlReader.Create(sr);

//Create a StringWriter object to capture the output from the XslCompiledTransform object
StringWriter sw = new StringWriter();

//Perform the transformation
xslt.Transform(xr, null, sw);

//Retrieve the transformed XML from the StringWriter object
string transformedXml = sw.ToString();

更新(感谢到目前为止的所有回答!):

抱歉我的含糊不清:“更快”和更“简洁”的意思是,我是否包括任何不必要的步骤?另外,我希望有一个更“可读”的解决方案 如果有人有的话。我在我正在开发的 Web 应用程序的一小部分中使用了这段代码,并且我即将把它移动到应用程序的大部分,所以我想在我移动之前确保它尽可能整洁.

此外,我从与数据库通信的静态类(在单独的数据访问类库中)获取 XML。我还在将转换后的 XML 字符串发送到网页之前对其进行操作。我不确定在这种情况下输入/响应流是否仍然可行。

还有一件事:提供的 XML 和 XSLT 可能会发生变化(应用程序的用户可以对两者进行更改),所以我认为我每次都必须编译。

最佳答案

这是我为我的 ASP.NET 编写的代码,它与您的非常相似:

  XDocument xDoc = XDocument.Load("output.xml");

XDocument transformedDoc = new XDocument();
using (XmlWriter writer = transformedDoc.CreateWriter())
{
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(XmlReader.Create(new StreamReader("books.xslt")));
transform.Transform(xDoc.CreateReader(), writer);
}

// now just output transformedDoc

关于c# - 在 ASP.NET 中执行 XSLT 转换的最简化方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1268479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com