我过去曾经遇到过这个问题几次。我的解决方案似乎总是过于复杂。如何在最少的步骤中从对象转到XPathDocument
?在过去,我创建了一个MemoryStream
,但是这个解决方案总是需要进行大量的按摩,导致代码难看。
你有什么建议?
static void Main(string[] args)
{
itemOrder order = GenerateTestItem();
XPathDocument doc = new XPathDocument(order);//wish it took the object directly...
XslTransform transform = new XslTransform();
transform.Load("Test.xslt");
XmlTextWriter writer = new XmlTextWriter("result.html",null);
transform.Transform(doc, null, writer);
Console.Write(writer);
writer.Close();
}
答案 0 :(得分:1)
您不能使用XPathDocument,因为它希望Xml文档作为存储。
您可以实现底层接口IXPathNavigable和相应的XPathNavigator类来遍历对象。以下文章介绍了这种方法:http://msdn.microsoft.com/en-us/library/ms950764.aspx。 XslTransform具有相应的Transform方法,您可以稍后使用它来应用Xsl:http://msdn.microsoft.com/en-us/library/ms163484.aspx