将XSL转换应用于XElement的最佳方法是什么?

Geo*_*uer 2 .net xml xslt

我有一个通过XElement.Parse()加载的文档,我需要对它应用XSL转换.我该怎么做呢?我知道要做的唯一方法是使用XPathDocument,我知道除了XElement-> String-> StringReader-> Stream-> XPathDocument之外,我无法在两者之间进行转换.

肯定有更好的办法.

在一个相关的问题中,将XPath应用于XElement的最佳方法是什么?

Dim*_*hev 5

为什么不使用:

xslt.Transform(xelement.CreateReader(), arglist, someTextWriter);
Run Code Online (Sandbox Code Playgroud)

在哪里, xelement XElement,xslt XslCompiledTransform,arglist XsltArgumentList someTextWriter TextWriter

换句话说,使用此实例方法:XElement.CreateReader()

或者,您可以使用:

xslt.Transform(xelement.CreateNavigator(null), someXmlWriter);
Run Code Online (Sandbox Code Playgroud)

在这里这里阅读有关CreateNavigator() 扩展方法的更多信息.

最后一个MSDN链接包含XSLT转换的完整代码示例.

更新:提出了另外一个问题:

在一个相关的问题中,将XPath应用于什么的最佳方法是 XElement什么?

评估XPath表达式的方法有多种 XNode

Extensions.XPathEvaluate()

要么

Extensions.XPathSelectElements()

要么

Extensions.XPathSelectElement()