我正在开发一个样式表,并且有一些初始的XML。但是,XML在样式化之前就被处理了,我希望将最终的XML发送到.Transform()中。例如,..。
XslCompiledTransform.Transform( xpd, xslArg, output )...i希望获得xpd的Xml内容(作为字符串),这样我就可以在其他工具中处理样式表。
有没有一种快捷的方法来达到这个目的呢?在VS2010即时窗口中,或者在调用.Transform()之前作为一个或两个快速C#行
编辑:我使用的.Transform()是
public void Transform(IXPathNavigable input,
XsltArgumentList arguments, TextWriter results);...and xpd是一个XPathDocument。
发布于 2013-01-11 04:16:34
编辑:我误解了你的问题的意图。简单的答案是获取任何IXPathNavigable (包括XPathDocument)的XML,您可以这样做:
string xml = xpd.CreateNavigator().OuterXml;以下是我最初的答案,它解释了如何在将XPathDocument提供给转换之前从代码中修改XML:
如果xpd是一个XPathDocument,那么您可以直接从XPathDocument获取一个XPathNavigator:
XPathNavigator xpn = xpd.CreateNavigator();并用它来修改XML。修改完成后,只需将xpn或xpd传入Transform()方法即可。另一方面,MSDN说XPathDocument的CreateNavigator()创建了一个只读导航器,所以这可能是一个小故障。
如果它确实是只读的,你应该能够这样做:
XmlDocument doc = new XmlDocument();
doc.LoadXml(xpd.CreateNavigator().OuterXml);然后使用doc修改XML,并在修改完成后将doc传递给转换。
https://stackoverflow.com/questions/14266094
复制相似问题