Get XML from XPathDocument

本文关键字:XPathDocument from XML Get | 更新日期: 2023-09-27 17:52:17

我正在开发一个样式表,并有一些初始XML。然而,在设置样式之前对XML进行了一些操作,我希望将最终的XML发送到.Transform()中。例如。。。

XslCompiledTransform.Transform( xpd, xslArg, output )

我想获得xpd的Xml内容(作为字符串(,这样我就可以在其他工具中处理样式表了。

有没有一种快速而肮脏的方法可以得到这个?在VS2010立即窗口中,或者在调用.Transform()之前的一两个快速C#行中?

编辑:我使用的.Transform()

public void Transform(IXPathNavigable input,
   XsltArgumentList arguments, TextWriter results);

并且CCD_ 4是CCD_。

Get XML from XPathDocument

编辑:我误解了你问题的意图。简单的答案是获取任何IXPathNavigable(包括XPathDocument(的XML,您可以这样做:
string xml = xpd.CreateNavigator().OuterXml;

下面是我的原始答案,它解释了如何在将XML输入到转换之前修改代码中的XPathDocument中的XML:

如果xpd是XPathDocument,那么您可能只需要从XPathDocument:中获得XPathNavigator

XPathNavigator xpn = xpd.CreateNavigator();

并使用它来修改XML。修改完成后,可以将xpnxpd传递到Transform()方法中。另一方面,MSDN说XPathDocument的CreateNavigator()创建了一个只读导航器,所以这可能有点麻烦。

如果它真的是只读的,你应该能够做到这一点:

XmlDocument doc = new XmlDocument();
doc.LoadXml(xpd.CreateNavigator().OuterXml);

然后使用doc修改XML,并在完成转换后将doc传递到转换中。