1. 程式人生 > >DataTable 與 XML ---DataTable 讀寫XML

DataTable 與 XML ---DataTable 讀寫XML


用法 :
建立結構
        DataClass.dtXml xml = new DataClass.dtXml(DataClass.sc.strXmlFile);	
	xml.createSchema(); //只建立表的結構

寫入XML
            currentDt.AcceptChanges();
            currentDt.WriteXml(DataClass.sc.strXmlFile , XmlWriteMode.WriteSchema);

讀XML檔案
               currentDt.ReadXml(DataClass.sc.strXmlFile);
               currentDv = currentDt.DefaultView ;
               mdl.viewDataInGridView(dataGridView1, currentDv, bindingNavigator1, bindingSource1);

//-----------------------------------------------------------------------------------------------------------------


  public class dtXml
   {

     private static string fName;

     public dtXml( string _fName)
     {
        fName = _fName;
     }

     //public  
     public void createSchema()
     {
        DataTable table = new DataTable("reason" );
        DataColumn column = new DataColumn("id", typeof(System.Int32));
        column.AutoIncrement = true;
        table.Columns.Add(column);

        column = new DataColumn("item", typeof(System.String));
        table.Columns.Add(column);

        table.WriteXmlSchema(fName);

     }



      public   void DemonstrateReadWriteXMLDocumentWithString()
      {
         DataTable table = CreateTestTable("Reason");
         PrintValues(table, "Original table");

         //string fileName = "d:\\TestData.xml";
         table.WriteXml( fName , XmlWriteMode.WriteSchema);

         DataTable newTable = new DataTable();
         newTable.ReadXml(fName);

         // Print out values in the table.
         PrintValues(newTable, "New table");
      }

      private  DataTable CreateTestTable(string tableName)
      {
         // Create a test DataTable with two columns and a few rows.
         DataTable table = new DataTable(tableName);
         DataColumn column = new DataColumn("id", typeof(System.Int32));
         column.AutoIncrement = true;
         table.Columns.Add(column);

         column = new DataColumn("item", typeof(System.String));
         table.Columns.Add(column);

         // Add ten rows.
         DataRow row;
         for (int i = 0; i <= 9; i++)
         {
            row = table.NewRow();
            row["item"] = "item " + i;
            table.Rows.Add(row);
         }

         table.AcceptChanges();
         return table;
      }

      private  void PrintValues(DataTable table, string label)
      {
         Console.WriteLine(label);
         foreach (DataRow row in table.Rows)
         {
            foreach (DataColumn column in table.Columns)
            {
               Console.Write("\t{0}", row[column]);
            }
            Console.WriteLine();
         }
      }

   }

生成的 XML 檔案格式如下:

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="reason" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="reason">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="id" msdata:AutoIncrement="true" type="xs:int" minOccurs="0" />
                <xs:element name="item" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <reason>
    <id>0</id>
    <item>錯送</item>
  </reason>
  <reason>
    <id>1</id>
    <item>有問題</item>
  </reason>
  <reason>
    <id>2</id>
    <item>短重</item>
  </reason>
  <reason>
    <id>3</id>
    <item>破損</item>
  </reason>
  <reason>
    <id>4</id>
    <item>送少</item>
  </reason>
  <reason>
    <id>5</id>
    <item>原因不明</item>
  </reason>
  <reason>
    <id>6</id>
    <item>原因很多</item>
  </reason>
</NewDataSet>




相關推薦

DataTable XML ---DataTable XML

用法 : 建立結構 DataClass.dtXml xml = new DataClass.dtXml(DataClass.sc.strXmlFile); xml.createSchema(); //只建立表的結構 寫入XML

在.net中序列化xml方法的總結

port 單詞 創建 padding 在一起 sys base msd 屏幕 在.net中序列化讀寫xml方法的總結 閱讀目錄 開始 最簡單的使用XML的方法 類型定義與XML結構的映射 使用 XmlElement 使用 XmlAttribute 使用 Inner

c#Xml文件

引用 use 記錄 一行 tar desktop for 單個 contacts 寫入xml文件 第一種方法:使用XmlDocument類: Demo1 //通過代碼創建XML文檔 //1、引用命名空間 System.Xml

XML操作封裝 - 實現預格式的XML

exception cto nbsp 分享 技術分享 string content compare 配置 XML用於作配置文件。 該封裝XML需滿足以下格式 <Configs>   <Config Name="XXX">   </Config

Java:簡單的XML文件之使用DOM4J

href 使用 attr student per oop vao 節點 需要 Dom4J方式解析XML文件。dom4j是非官方提供的xml文件解析方式,因此需要去第三方下載dom4j的jar包 File file = new File("D:\\chengmuzhe\\ja

Java:使用DOM4j來實現XML文件中的屬性和元素

contact post 讀寫xml 修改屬性 sax document tel reader 內容 DOM4可以讀取和添加XML文件的屬性或者元素 讀取屬性: public static void ReadAttributes() throws DocumentExcep

Qt簡單xml

這裡只簡單舉例,讀寫是關聯在一起的。 xml文件的內容是: <?xml version="1.0" encoding="UTF-8"?> <fileinfo>  <filename>test</filename>  &l

ASP.NET 系統檔案操作和XML配置

這裡將工作中用到的兩個工具分享一下:(1)、系統檔案操作工具(2)、XML讀寫配置檔案工具。 目錄 檔案操作工具 XML配置檔案讀寫 XML配置檔案讀取示例 檔案操作工具 using System; using System.Collections.Generic;

Java:使用DOM4j來實現XML檔案中的屬性和元素

DOM4可以讀取和新增XML檔案的屬性或者元素 讀取屬性: public static void ReadAttributes() throws DocumentException { File file = new File("D:\\cmz\\java\\XMLTest\\Custom

Java:簡單的XML檔案之使用DOM4J

Dom4J方式解析XML檔案。dom4j是非官方提供的xml檔案解析方式,因此需要去第三方下載dom4j的jar包 File file = new File("D:\\chengmuzhe\\java\\JavaOOP6.0\\students.xml"); SAXReader reader = n

C++XML檔案(libxml2庫)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C++XML檔案(使用tinyxml庫)

使用以下程式碼之前,需要下載TinyXml庫,幷包含到工程下 #include <stdio.h> #include "tinyxml.h" #include <iostream> #include <cstring> usin

VS2010 MFC視窗程式 pugixmlXML

       為了用VC++讀寫XML檔案前後弄了差不多5天了,試過微軟自家的MSXML和libxml2庫,介紹MSXML的相關書籍和CSDN部落格裡的文章基本全是XP時代的MSXML4.dll,WINDOWS 7 system32目錄只有MSXML3.d

Unity 加密xml

開發unity的過程中有不斷進行沙盒讀取操作,每次操作都需要進行一堆程式碼書寫,並且容易暴露資料,在這裡進行封裝一個類進行方便沙盒讀寫和進行加密 直接貼程式碼 /// <summary> /// ***作者:黛墨*** ///*** 時間:2018-9-16*

Qt下XML格式檔案(使用QDomDocument類)

簡述 XML是一種標記語言,被設計用來結構化儲存以及傳輸資訊,是一種常用的文件資料結構。 就我個人而言,Qt下讀寫XML格式檔案可以有三種方法: 一是使用純C++的rapidxml開源庫。優點是速度快,媲美strlen()的速度;缺點是處理中文比較麻煩,編碼只有ANSI格式。 二是使用Q

PythonXML檔案

什麼是XML XML是可擴充套件標記語言(Extensible Markup Language)的縮寫,其中標記是關鍵部分。使用者可以建立內容,然後使用限定標記標記它,從而使每個單詞、短語或塊成為可識別、可分類的資訊。 標記語言從早起的私有公司和政府制定形式逐

PHPXML檔案的四種方法

  PHP對XML檔案進行讀寫操作的方法一共有四種,分別是:字串方式直接讀寫、DOMDocument讀寫、XMLWrite寫和XMLReader讀、SimpleXML讀寫,本文將依次對這四種方法進行介紹。   介紹之前首先對本文例子使用的資料和檔案進行說明。本文寫XML檔案

python類庫31[使用minidomxml]

def  TestMiniDom():   from  xml.dom  import  minidom  doc  =  minidom.parse( " employees.xml " )     #  get root element: &

PythonXML後保持節點屬性順序不變

stack fyi 但是 ng- 改變 保持 flow -o href Python讀寫XML後保持節點屬性順序不變 試過xml.etree.ElementTree和xml.dom.minidom兩個python的庫,發現讀取後輸出都會改變xml裏面節點屬性的順序. 雖然這

PHPxml

use SimpleXMLElement; public function abc(){ $xmlTag = array( 'starttime', 'endtime', 's