值不能为空.参数名:将XmlDocument转换为流时的流

本文关键字:转换 XmlDocument 不能 参数 | 更新日期: 2023-09-27 18:17:46

在调用XmlDocument的Save方法时获得参数异常(流不能为null)。

下面是我的示例代码

    public Stream GetModifiedStream(Stream inputStream, string NewText)
    {
        Stream outputStream = null;
        try
        {
            XmlDocument document = new XmlDocument();
            document.Load(inputStream);
            XmlNode myNode = document.SelectSingleNode("/title");
            myNode.InnerText = NewText;
            document.Save(outputStream);
        }
        catch (Exception exp)
        {
            outputStream = inputStream;
        }
        return outputStream;
    }

我的GetModifiedStream()方法将接受inputStream参数,它将基本上改变节点的值并将XmlDocument转换为流。和我得到异常,而转换XmlDocument到流

谁能告诉我怎么做这个?

谢谢

值不能为空.参数名:将XmlDocument转换为流时的流

你必须使用一个现有的流,现在你传递null,这会导致写入时的异常,而不是使用MemoryStream:

public Stream GetModifiedStream(Stream inputStream, string NewText)
{
    Stream outputStream = new MemoryStream();
    try
    {
        XmlDocument document = new XmlDocument();
        document.Load(inputStream);
        XmlNode myNode = document.SelectSingleNode("/title");
        myNode.InnerText = NewText;
        document.Save(outputStream);
    }
    catch (Exception exp)
    {
        outputStream = inputStream;
    }
    return outputStream;
}

你想要使用的流类型(文件流,内存流,网络流)实际上取决于你的应用程序,但是你必须传递一个有效的流实例给XmlDocument.Save()方法