将XPathDocument转换为字符串

时间:2010-08-18 08:57:42

标签: c# xml xpath

我有一个XPathDocument,并希望将其导出为包含该文档作为XML表示的字符串。最简单的方法是什么?

2 个答案:

答案 0 :(得分:14)

您可以执行以下操作来获取XML文档的字符串表示形式:

XPathDocument xdoc = new XPathDocument(@"C:\samples\sampleDocument.xml");
string xml = xdoc.CreateNavigator().OuterXml;

如果希望字符串包含XML文档的完整表示,包括XML声明,则可以使用以下代码:

XPathDocument xdoc = new XPathDocument(@"C:\samples\sampleDocument.xml");
StringBuilder sb = new StringBuilder();
using (XmlWriter xmlWriter = XmlWriter.Create(sb))
{
    xdoc.CreateNavigator().WriteSubtree(xmlWriter);
}
string xml = sb.ToString();

答案 1 :(得分:0)

XPathDocument是XML文档的只读表示形式。这意味着内部表示不会改变。要获取XML,您可以获取原始文档。

或者使用0xA3的方法,它将遍历整个文档并再次写入(输出不一定与输入相同,但在结构和功能上相同,因为某些输入被XDM内存表示丢弃)