我看到几个与此相近的问题,但没有一个完全覆盖它:
我可以从这些中拼凑出一些东西,但我担心我会通过太多步骤来提高效率。
我目前所拥有的是从HTTP Web请求中读取XML:
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(stream);
string xml = streamReader.ReadToEnd();
这是在需要应用XLST转换之前。现在我有一个(可能为null)XslCompiledTransform
对象。
所以我想添加一个像:
这样的块if(transform != null)
{
xml = transform.Transform(xml);
}
显然,这是不可能的。我看到可以创建StringReaders和XmlReaders但是将xml作为字符串然后将其推回到另一个对象是否效率低下?我可以直接使用我的stream
或streamReader
对象来支持相同的基本流程,但是可选择转换吗?
答案 0 :(得分:0)
我个人使用XmlDocument.Load()
函数从网址加载XML,在这种情况下不使用WebRequest
。
您可以将XmlDocument
Straight传递给XSLCompiledTransform.Transform()
然后。
XmlDocument doc = new XmlDocument();
doc.Load(url);
if (transform != null)
{
XmlDocument tempDoc = new XmlDocument();
using (XmlWriter writer = tempDoc.CreateNavigator().AppendChild())
{
transform.Transform(doc, writer);
}
doc = tempDoc;
} //Use your XmlDocument for your transformed output