C#小Tip:Xml操作简明手册 2
2)如何创建一个xml文档
由于xml实质也只是一个文本文件,所以最简单你可以直接使用System.IO下的类生成一个文件,并存储成xml文件,当然,你需要手动保证该文件形式良好,比如必须有根元素、必须有关闭标签、必须正确嵌套等等。
如果你懒得自己去想文件的形式,可以使用System.Xml下的类。
Code
XmlDocument xdoc = new XmlDocument();
XmlDeclaration xdcl = xdoc.CreateXmlDeclaration("1.0", "iso-8859-1", "");
xdoc.AppendChild(xdcl);
//XmlNode xnode = xdoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
//xdoc.AppendChild(xnode);
//Of course you can use CreateNode here(with the XmlNodeType.Element),
//so no more questions about 'what difference between this 2 methods?',
XmlElement root = xdoc.CreateElement("music");
xdoc.AppendChild(root);
XmlElement xelm = xdoc.CreateElement("song");
xelm.SetAttribute("title", "Oh,girl");
xelm.InnerText = "Oh,girl,i'd be in trouble if you left me now";
root.AppendChild(xelm);
try
{
xdoc.Save("xmlsample-1.xml");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
结果:
Code
<?xml version="1.0" encoding="iso-8859-1"?>
<music>
<song title="Oh,girl">Oh,girl,i'd be in trouble if you left me now</song>
</music>
由于像XmlDeclaration、XmlElement这些类都继承自XmlNode,故CreateNode()方法是最通用的,可以通过使用XmlNodeType来生成不同类型的节点。
另外,往元素中插入文本,使用的属性是“InnerText”。
方法二:
XmlDocument还有一个LoadXml()方法,实际上跟一行一行写入文本没区别,就是预先写好xml,并把它作为字符串传给LoadXml()方法。
方法三:
如果你手头有一个DataTable,还可以使用DataTable.WriteXml()方法。
Code
DataTable dt = new DataTable("music");
dt.Columns.Add("title", typeof(string));
dt.Columns.Add("artist");
dt.Columns.Add("genre");
dt.Columns.Add("album");
//
dt.Rows.Add("Oh,girl", "The Chi-lites", "Soul", "A lonely man");
dt.Rows.Add("What if", "Babyface", "R&B", "Unkno
相关文档:
C#
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("~/Config/User_yhlx_Jb.xml"));
DataView dv = ds.Tables[0].DefaultView;
//dv.RowFilter = "State=0";
this.DropDownList1.DataSource = dv;
this.DropDownList1.DataTextField = "text";
this ......
protected void Button1_Click(object sender, EventArgs e)
{
//为response(star)节点 和 Cabins(f) cabin节点分别添加个
&nbs ......
XML Schema attributeGroup 元素
定义和用法
attributeGroup 元素用于对属性声明进行组合,这样这些声明就能够以组合的形式合并到复杂类型中。
元素信息
出现次数
无限制
父元素
attributeGroup、complexType、schema、restriction (simpleContent)、extension (simpleContent)、rest ......
原先一直用BinaryFormatter来序列化挺好,可是最近发现在WinCE下是没有办法进行BinaryFormatter操作,很不爽,只能改成了BinaryWriter和BinaryReader来读写,突然想到能不能用XML来序列化?于是在网上查了些资料便写了些实践性代码,做些记录,避免以后忘记。
序列化对象
public class People
......
编译:C程序直接编译成标准的二进制可执行的代码,但C#的源程序并不是被编译成二进制可执行的形式,而是一种中间语言(MSIL),类似JAVA中的字节码
结构体:C#的结构体与C++的结构体相似。但是C#的结构体与类是不同的,而且不支持继承。
预编译:C#中存在预编译的指令支持条件编译,警告,错误报告和编译行控制。其指令 ......