XmlDataDocument
来源:互联网 发布:gta53md针对笔记本优化 编辑:程序博客网 时间:2024/05/18 03:57
XmlDataDocument类表示DataSet类的XML文档对象。通过将一个XmlDataDocument类实例绑定到DataSet,并在数据修改时保持同步,可以在关系数据和层次数据之间形成交互关系。
XmlDataDocument类是XmlDocument类的派生类。在需要对XML数据进行处理时,XmlDataDocument类实例和DataSet类实例保持同步,优于将数据加载到DataSet再处理。在不同的系统平台之间采用XML交换数据时,使用XmlDataDocument类实例和DataSet类实例同步机制,可以直接将其他系统平台返回的XML数据反映到DataSet类实例中。
DataSet类实例和XmlDataDocument类实例在同步的时候使用同一组缓存数据。也就是说在任何一方,DataSet类实例或者XmlDataDocument类实例上的修改,另一方的数据可以即时反映出来。DataSet类实例和XmlDataDocument类实例的同步给数据处理带来了很大的灵活性。以为同一组数据具有两种类的表现形式,所以,这组数据既可以作为DataSet类实例进行关系数据的处理,也可以作为XmlDataDocument类实例进行层次数据的处理。
语法定义:
public class XmlDataDocument : XmlDocument
下面演示使用不同的方法建立XmlDataDocument类的实例//创建一个新的XmlDataDocument类实例XmlDataDocument datadoc = new XmlDataDocument();//从原有的DataSet类实例创建XmlDataDocument类实例DataSet ds = new DataSet();XmlDataDocument = new XmlDataDocument(ds);
方法:
Load:将XML文档数据赋予XmlDocument类
LoadXml:直接将XML字符串赋予XmlDocument类
Save:保存XML文档到指定的对象中
ReadNode:从XmlReader 创建节点
ImportNode:从外部导入一个节点到当前文档
WriteTo:使用XmlWriter保存XML文档对象
CreateCDataSection: 创建CData节点
CreateComment:创建注释节点
CreateDocumentFragment:创建XML文档片段
CreateDocumentType:创建新的XML文档类型
CreateEntityReference:创建实体引用
CreateProcessingInstruction:创建处理指令
CreateSignificantWhitespace:创建空白符号
CreateTextNode:创建文本节点
CreateWhitespace:创建空白符号
CreateXmlDeclaration:创建一个XML声明
GetElementById:获得指定ID的Element
GetElementsByTagName:获得指定名称Element的子节点列表
GetRowFromElement:获得与指定XmlElement关联的DataRow类实例
Normalize:将XML文档数据“正常化”
下面演示如何把DataSet数据加载到XmlDataDocument实例中,然后参加一条数据记录。代码如下
static void Main(string[] args) { System.IO.StringReader builder = new System.IO.StringReader("<employee>" + "<name></name><age></age><sex></sex><email></email></employee>"); XmlReader reader = XmlReader.Create(builder); DataSet ds = new DataSet("empdata"); ds.EnforceConstraints = false; ds.ReadXmlSchema(reader); reader.Close(); XmlDataDocument datadoc = new XmlDataDocument(ds); //创建数据 XmlElement root = datadoc.CreateElement("empdata"); datadoc.AppendChild(root); XmlElement employee = datadoc.CreateElement("employee"); root.AppendChild(employee); XmlElement name = datadoc.CreateElement("name"); name.InnerText = "John"; employee.AppendChild(name); XmlElement age = datadoc.CreateElement("age"); age.InnerText = "25"; employee.AppendChild(age); XmlElement sex = datadoc.CreateElement("sex"); sex.InnerText = "male"; employee.AppendChild(sex); XmlElement email = datadoc.CreateElement("email"); email.InnerText = "john@hotmail.com"; employee.AppendChild(email); //显示DataSet中的数据 Console.WriteLine("姓名:" + ds.Tables[0].Rows[0]["name"]); Console.WriteLine("年龄:" + ds.Tables[0].Rows[0]["age"]); Console.WriteLine("性别:" + ds.Tables[0].Rows[0]["sex"]); Console.WriteLine("email:" + ds.Tables[0].Rows[0]["email"]); Console.ReadLine(); }
注意,"ds.EnforceConstrains=false;" 这一行代码用来去掉DataSet类的强制约束规则,否则不能修改数据。
上面代码输出结果为:
姓名:John
年龄:25
性别:male
email:john@hotmail.com
属性:
Attributes:包含节点属性的集合
ChildNodes :包含所有子节点的集合
DataSet:获取XML数据文档对象的DataSet类表现形式
DocumentElement:获取Xml数据文档对象的根XmlElement
等等
static void ShowEmpData() { System.IO.StringReader bulider = new System.IO.StringReader("<employee><name>John</name>" + "<age>25</age><sex>male</sex><email>john@hotmail.com</email></employee>"); XmlReader reader = XmlReader.Create(bulider); DataSet ds = new DataSet("empdata"); ds.EnforceConstraints = false; ds.ReadXml(reader); reader.Close(); XmlDataDocument datadoc = new XmlDataDocument(ds); DataSet getds = datadoc.DataSet; //显示XmlDataDocument类实例中DataSet属性的数据 Console.WriteLine("姓名:" + ds.Tables[0].Rows[0]["name"]); Console.WriteLine("年龄:" + ds.Tables[0].Rows[0]["age"]); Console.WriteLine("性别:" + ds.Tables[0].Rows[0]["sex"]); Console.WriteLine("email:" + ds.Tables[0].Rows[0]["email"]); }
上面代码输出结果为:
姓名:John
年龄:25
性别:male
email:john@hotmail.com
- XmlDataDocument
- XmlDataDocument加载数据库
- 将实体类或者集合序列化为xml(xmlDataDocument)
- .net中xsl转换方式 XPathDocument > XmlDocument > XmlDataDocument
- 使用XmlDocument/XmlDataDocument类加载XML文件时如何忽略DTD验证
- 使用XmlDocument/XmlDataDocument类加载XML文件时如何忽略DTD验证
- 使用XmlDocument/XmlDataDocument类加载XML文件时如何忽略DTD验证
- 新读图时代:网站首页12大元素
- thrift 轻松实现多语言跨服务器通信
- 在SQL2005中借助clr,调用外部C#程序
- 提高代码的质量
- c/c++语言位域注意事项
- XmlDataDocument
- 六条优秀思维的品质
- VB---百例51--删除文件
- 对Android初学者学习中的几点建议
- struts1知识
- 设计模式之行为型模式
- 开始准备翻译《OpenXava by Example》
- keil MDK编译器警告和错误详解
- Griview以excel方式导出