将旧值替换为xml中的新值

时间:2012-02-06 14:09:44

标签: c# xml string architecture replace

您好我正在尝试读取xml字符串并尝试将旧值替换为新值..但现在不知道如何执行此操作...因为它是只读的。注意:我不想使用STRING.REPLACE,因为这可能会以其他方式使用,例如添加其他元素。

string oldValue = "<?xml version=\"1.0\" encoding=\"utf-16\"?><string>Hi This is old values</string>";

string newValue = "<?xml version=\"1.0\" encoding=\"utf-16\"?><string>Hi I am the new values</string>";

以下是我想要做的事情:

     private string WriteXmlValue()
            {
                string currentXml = "<?xml version=\"1.0\" encoding=\"utf-16\"?><string>Hi This is old values</string>";

string newValue = "Hi I am the new values";
               string newXmlstring = string.empty;
                using (XmlReader xmlReader = XmlReader.Create(new StringReader(currentXml)))
                {
                    while (xmlReader.Read())
                    {
                        switch (xmlReader.NodeType)
                        {
                            case XmlNodeType.Text:
                                //TODO Replace xmlReader.Value to newValue??
                                xmlReader.Value = newValue; //Erroring read only .. How do i modify value??
newXmlstring  = xmlReader.value;
                                break; 
                        }
                    }
                }
                return newXmlstring;
            }

然后我尝试返回这个新的xmlstring。

1 个答案:

答案 0 :(得分:2)

如果您使用的是.net版本3.5,那么要使用XML数据,最好是用户LINQ to XML

http://www.codeproject.com/Articles/24376/LINQ-to-XML

Manipulate XML data with XPath and XmlDocument (C#)