当前位置:  开发笔记 > 编程语言 > 正文

从C#中的XML Writer创建XML Element对象

如何解决《从C#中的XMLWriter创建XMLElement对象》经验,为你挑选了2个好方法。

我正在用C#编写Windows服务.我有一个XmlWriter包含XSLT转换输出的内容.我需要将XML放入一个XMLElement对象中以传递给Web服务.

做这个的最好方式是什么?



1> Richard..:

您不需要中间字符串,您可以创建一个直接写入XmlNode的XmlWriter:

XmlDocument doc = new XmlDocument();
using (XmlWriter xw = doc.CreateNavigator().AppendChild()) {
  // Write to `xw` here.
  // Nodes written to `xw` will not appear in the document 
  // until `xw` is closed/disposed.
}

并传递xw作为转换的输出.

NB.xsl:output的某些部分将被忽略(例如编码),因为XmlDocument将使用自己的设置.



2> Marc Gravell..:

好吧,一个XmlWriter包含输出; 通常,您有一个支持对象(可能是一个StringBuilder或者MemoryStream),它是一个转储位置.在这种情况下,StringBuilder可能是最有效的......也许是这样的:

    StringBuilder sb = new StringBuilder();
    using (XmlWriter writer = XmlWriter.Create(sb))
    {
        // TODO write to writer via xslt
    }
    string xml = sb.ToString();
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xml);
    XmlElement el = doc.DocumentElement;

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有