我有一个通过XElement.Parse()加载的文档,我需要对它应用XSL转换。我该怎么做呢?我知道要做的唯一方法是使用XPathDocument,我知道无法在XElement-> String-> StringReader-> Stream-> XPathDocument以外的两者之间进行转换。
必须有更好的方法。
在相关问题中,将XPath应用于XElement的最佳方法是什么?
答案 0 :(得分:5)
为何不使用:
xslt.Transform(xelement.CreateReader(), arglist, someTextWriter);
其中 xelement
是XElement
,xslt
是XslCompiledTransform
,arglist
是XsltArgumentList
someTextWriter
是TextWriter
?
换句话说,请使用此实例方法: XElement.CreateReader()
或者,您可以使用:
xslt.Transform(xelement.CreateNavigator(null), someXmlWriter);
详细了解 CreateNavigator()
扩展方法here和here 。
最后一个MSDN链接包含XSLT转换的完整代码示例。
更新:提出了另外一个问题:
在一个相关问题中,将XPath应用于的最佳方法是什么?
XElement
?
有多种方法可以评估XNode
<强> Extensions.XPathEvaluate()
强>
或
Extensions.XPathSelectElements()
或