datatable 和XML转换
来源:互联网 发布:淘宝裁决之镰 编辑:程序博客网 时间:2024/04/28 20:38
<music><song><artist>The Chi-lites</artist><genre>Soul</genre><album>A lonely man</album><year>1972</year></song><song><artist>Babyface</artist><genre>R&B</genre><album>unknown</album><year></year></song><song><artist>Babyface</artist><genre>R&B</genre><album>The essential babyface</album><year>2001</year></song><song><artist>Babyface</artist><genre>R&B</genre><album>Grown and sexy</album><year>2005</year></song><song><artist>Maria Arredondo</artist><genre>Pop</genre><album>Not going under</album><year>2004</year></song><song><artist>Leona Lewis</artist><genre>Pop</genre><album>Unknown</album><year>2008</year></song><song><artist>Usher</artist><genre>R&B</genre><album>Usher</album><year>2008</year></song><song><artist>Christina Aguilera</artist><genre>Blues</genre><album>Back to basics</album><year>2004</year></song><song><artist>Sting</artist><genre>Pop</genre><album>Shape of my heart</album><year></year></song></music>
代码文件:
代码
class Program { static void Main(string[] args) { VaildationXmlSchema(); } // Xml结构的文件读到DataTable中 static DataTable XmlToDataTableByFile() { string fileName = "E:\\xmlsample.xml"; XmlDocument doc = new XmlDocument(); doc.Load(fileName); DataTable dt = new DataTable("song"); //以第一个元素song的子元素建立表结构 XmlNode songNode = doc.SelectSingleNode("/music/song[1]"); string colName; if (songNode != null) { for (int i = 0; i < songNode.ChildNodes.Count; i++) { colName = songNode.ChildNodes.Item(i).Name; dt.Columns.Add(colName); } } DataSet ds = new DataSet("music"); ds.Tables.Add(dt); //Xml所有song元素的子元素读到表song中,当然用dt也可以读。 ds.ReadXml(fileName); return dt; } // Xml结构的字符中读到DataTable中 static void XmlToDataTableByString() { string fileName = "E:\\xmlsample.xml"; XmlDocument doc = new XmlDocument(); doc.Load(fileName); DataTable dt = new DataTable("song"); //以第一个元素song的子元素建立表结构 XmlNode songNode = doc.SelectSingleNode("/music/song[1]"); string colName; if (songNode != null) { for (int i = 0; i < songNode.ChildNodes.Count; i++) { colName = songNode.ChildNodes.Item(i).Name; dt.Columns.Add(colName); } } DataSet ds = new DataSet(); ds.Tables.Add(dt); //获取Xml字串 string xmlString = doc.InnerXml; StringReader sr = new StringReader(xmlString); XmlTextReader xr = new XmlTextReader(sr); //Xml所有song元素的子元素读到表song中,当然用dt也可以读。 ds.ReadXml(xr); } // DataTable转换成Xml结构的文本 static void DataTableToXml() { //dt的名为song,ds的名为music DataTable dt = XmlToDataTableByFile(); //保存Xml验证架构 dt.WriteXmlSchema("E://xmlsample.xsd"); //dt写成Xml结构 System.IO.TextWriter tw = new System.IO.StringWriter(); dt.WriteXml(tw); string xml = tw.ToString(); } //验证Xml结构 static void VaildationXmlSchema() { XmlSchemaSet set = new XmlSchemaSet(); set.Add("", "E:\\xmlsample.xsd"); XmlDocument doc = new XmlDocument(); doc.Schemas = set; try { doc.Load("E:\\xmlsample.xml"); doc.Validate(new ValidationEventHandler(Vaildation)); } catch (Exception e) { Console.Write(e.Message); } } static void Vaildation(object sender, ValidationEventArgs e) { switch (e.Severity) { case XmlSeverityType.Error: throw e.Exception; case XmlSeverityType.Warning: throw e.Exception; } } }
生成的验证Xml文件:xmlsample.xsd
代码
<?xml version="1.0" standalone="yes"?><xs:schema id="music" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="music" msdata:IsDataSet="true" msdata:MainDataTable="song" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="song"> <xs:complexType> <xs:sequence> <xs:element name="artist" type="xs:string" minOccurs="0" /> <xs:element name="genre" type="xs:string" minOccurs="0" /> <xs:element name="album" type="xs:string" minOccurs="0" /> <xs:element name="year" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element></xs:schema>Xml结构的文件读到DataTable中,不用建表结构,直接用DataSet读。代码:DataSet ds = new DataSet();TextReader tr = new StringReader(xd.InnerXml);ds.ReadXml(tr);
0 0
- datatable 和XML转换
- datatable和xml转换 2
- xml文件和DataTable之间相互转换
- xml转换成DataTable
- xml转换DataTable
- 把Xml转换成DataTable
- DataTable和xml互转
- DataTable和list转换
- DataTable转换Xml Xml流转换DataSet
- C#DataTable和XML互转
- DataTable和Xml互相转化
- DataTable 与 XML 文本互转换
- Xml与DataTable相互转换方法
- XML与DataTable/DataSet之间转换
- Xml与DataTable相互转换方法
- C# 实现 DataTable 转换成 XML字符串
- xml与datatable间相互转换
- 读取DataTable内容转换为xml字符串
- WordPress注册支持中文用户名的解决办法
- Javascript:关于JS的全局变量跟局部变量 经典案例!!!
- 2014年9月5日
- Java基础:Java语法基础
- android自带Json API
- datatable 和XML转换
- android压力测试,monkey
- 面向对象设计基本原则
- c# socket传送大文件分享代码
- XSD
- 无线安全配置(wifi 认证,加密)
- 好用SVN工具kdesvn介绍
- ArcGIS自定义坐标变换中的方法说明
- telnet 查看端口是否可访问