public class XmlConfig
{
private XmlDocument doc;
private string xmlFileName; public XmlConfig(string filename)
{
xmlFileName = filename;
doc = new XmlDocument();
try
{
doc.Load(xmlFileName);
}
catch
{
//doc.LoadXml("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
}
} public void Save()
{
try
{
doc.Save(xmlFileName);
}
catch
{
}
} /// <summary>
/// 读XML节点
/// </summary>
/// <param name="key">节点KEY</param>
/// <param name="value">默认值</param>
/// <returns>如节点存在,返回值,否则,返回默认值</returns>
public string Read(string key, string value)
{
XmlNode node = doc.DocumentElement.SelectSingleNode(key);
if (node != null)
return node.InnerText;
else
return value;
} /// <summary>
/// 读XML子节点
/// </summary>
/// <param name="key">父节点值</param>
/// <param name="Childkey">子节点值</param>
/// <param name="value">默认值</param>
/// <returns>如节点存在,返回值,否则,返回默认值</returns>
public string Read(string key,string Childkey,string value)
{
XmlNode node = doc.DocumentElement.SelectSingleNode(key);
if(node!=null)
{
XmlNode node2=node.SelectSingleNode(Childkey);
if(node2!=null)
{
return node2.InnerText;
}
else
return value;
}
else
return value;
}
public XmlNodeList NodeRead()
{
XmlNode node = doc.ChildNodes[1];
XmlNodeList nodelist = node.ChildNodes;
return nodelist;
}
}

解决方案 »

  1.   

    assume your XmlNode can be converted to a XmlDataDocument, tryusing System.IO;
    using System.Xml;XmlNode node;
    MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(node.OuterXml));
    ...1.
    DataSet ds = new DataSet();
    ds.ReadXml(ms);
    XmlDataDocument xdd = new XmlDataDocument(ds);2. 
    XmlDataDocument xdd = new XmlDataDocument();
    xdd.DataSet.ReadXml(ms);
      

  2.   

    MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(node.OuterXml));出现 ‘字节索引 222 中发现无效的字节’。
    啥问题?
      

  3.   

    MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(node.OuterXml));找到原因了MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(node.OuterXml));