为什么要用流的形式呢?
使用System.Xml.XmlTextWriter
直接写入一个临时的XML文件中不就可以了吗?
然后再用System.Xml.XmlTextReader从中读出来就可以了
//写的例子
System.Xml.XmlTextWriter writer = new XmlTextWriter(filePath,System.Text.Encoding.Default);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("IMClientStart");
writer.WriteAttributeString("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance"); writer.WriteStartElement("Server");
writer.WriteElementString("IP",InitData.ServerIP.ToString());
writer.WriteElementString("Port",InitData.BASE_SERVER_PORT.ToString());
writer.WriteEndElement(); writer.WriteStartElement("UserList");
for( int i=0;i<userList.Count;i++)
{
writer.WriteElementString("UserID",userList[i].ToString());
}
writer.WriteEndElement(); writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();//读的例子
System.Xml.XmlTextReader reader = new XmlTextReader( "文件名.xml");
reader.WhitespaceHandling = System.Xml.WhitespaceHandling.None;
while( reader.Read() )
{
if( reader.NodeType == System.Xml.XmlNodeType.Element )
{
nodeText = reader.Name;
switch( nodeText )
{
case "IP":
ip = reader.ReadString();
break;
case "Port":
port = reader.ReadString();
break;
case "UserID":
Login.UserIDList.Add( reader.ReadString());
break;
}
}
}
使用System.Xml.XmlTextWriter
直接写入一个临时的XML文件中不就可以了吗?
然后再用System.Xml.XmlTextReader从中读出来就可以了
//写的例子
System.Xml.XmlTextWriter writer = new XmlTextWriter(filePath,System.Text.Encoding.Default);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("IMClientStart");
writer.WriteAttributeString("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance"); writer.WriteStartElement("Server");
writer.WriteElementString("IP",InitData.ServerIP.ToString());
writer.WriteElementString("Port",InitData.BASE_SERVER_PORT.ToString());
writer.WriteEndElement(); writer.WriteStartElement("UserList");
for( int i=0;i<userList.Count;i++)
{
writer.WriteElementString("UserID",userList[i].ToString());
}
writer.WriteEndElement(); writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();//读的例子
System.Xml.XmlTextReader reader = new XmlTextReader( "文件名.xml");
reader.WhitespaceHandling = System.Xml.WhitespaceHandling.None;
while( reader.Read() )
{
if( reader.NodeType == System.Xml.XmlNodeType.Element )
{
nodeText = reader.Name;
switch( nodeText )
{
case "IP":
ip = reader.ReadString();
break;
case "Port":
port = reader.ReadString();
break;
case "UserID":
Login.UserIDList.Add( reader.ReadString());
break;
}
}
}
解决方案 »
- 小弟做的在线代码库,VS插件,欢迎大家使用!
- word与fck
- WinForm里怎么使用Http把数据发送到WebService里
- 如何在服务器端获得浏览者的计算机名称?
- 请教C#读取网页信息,中文显示乱码的问题。附有代码
- ftp client编程:通过Socket代理访问外网Ftp站点,可以实现登陆、创建文夹等,但无法实现上传、下载文件(300分求解)
- C# 关于DataView.RowFilter属性的问题
- 想要源码的朋友,进来跟帖
- 使用5种不同的方法加载水晶报表(Windows 窗体)(海波.NET)
- win2003中为什么不能安装.net2001,只能安装.net2003吗?
- 有谁知道当用SqlDataAdapter.Update()更新数据库时,抛出的异常(并发冲突:UpdateCommand 影响 0 个记录)是如何产生的?
- 请问这个.net C# winform项目的datagrid的问题是不是datagrid本身的一个bug?
非常感谢你的例子,但我现在的目的是动态的生成一个XML文档,而这个文档并不是从文件里读出来,也不写入文件,只是可能用于某种操作,完了以后是要销毁的。
using System.Xml;
using System.Text;
using System.IO;class TestXmlSt
{
static void Main()
{
MemoryStream ms = new MemoryStream();
writeMyDoc(ms);
string s = System.Text.Encoding.Default.GetString(ms.ToArray());
Console.WriteLine(s);
} static bool writeMyDoc(System.IO.Stream output)
{
XmlDocument doc = new XmlDocument();
XmlElement e = doc.CreateElement("root");
doc.AppendChild(e); XmlElement c = doc.CreateElement("child");
c.InnerText = "hello world";
e.AppendChild(c); doc.Save(output); return true;
}
}