Thứ Tư, 6 tháng 6, 2012

Đọc và viết tài liệu XML

http://nguyenluuvu.com/blog/post/doc-va-viet-tai-lieu-xml.php
--   

Đọc và viết tài liệu XML


 

XML là gì?

Một chút lịch sử

Như tất cả chúng ta đều biết, XML là viết tắt cho chữ eXtensible Markup Language - nhưng Markup Language (ngôn ngữ đánh dấu) là gì?

Trong ngành ấn loát, để chỉ thị cho thợ sắp chữ về cách in một bài vỡ, tác giả hay chủ bút thường vẽ các vòng tròn trong bản thão và chú thích bằng một ngôn ngữ đánh dấu tương tự như tốc ký. Ngôn ngữ ấy được gọi là Markup Language.

XML là một ngôn ngữ đánh dấu tương đối mới vì nó là một subset (một phần nhỏ hơn) của và đến từ (derived from) một ngôn ngữ đánh dấu già dặn tên là Standard Generalized Markup Language (SGML). Ngôn ngữ HTML cũng dựa vào SGML, thật ra nó là một áp dụng của SGML.

SGML được phát minh bởi Ed Mosher, Ray Lorie và Charles F. Goldfarb của nhóm IBM research vào năm 1969, khi con người đặt chân lên mặt trăng. Lúc đầu nó có tên là Generalized Markup Language (GML), và được thiết kế để dùng làm meta-language, một ngôn ngữ được dùng để diễn tả các ngôn ngữ khác - văn phạm, ngữ vựng của chúng ,.v.v.. Năm 1986, SGML được cơ quan ISO (International Standard Organisation) thu nhận (adopted) làm tiêu chuẩn để lưu trữ và trao đổi dữ liệu. Khi Tim Berners-Lee triển khai HyperText Markup Language - HTML để dùng cho các trang Web hồi đầu thập niên 1990, ông ta cứ nhắc nhở rằng HTML là một áp dụng của SGML.

Vì SGML rất rắc rối, và HTML có nhiều giới hạn nên năm 1996 tổ chức W3C thiết kế XML. XML version 1.0 được định nghĩa trong hồ sơ February 1998 W3C Recommendation, giống như một Internet Request for Comments (RFC), là một "tiêu chuẩn".

 

ĐỌC TÀI LIỆU XML

 
        
  1. using System;
  2.     
  3. using System.Collections.Generic;
  4.     
  5. using System.Text;
  6.     
  7. using System.Xml;
  8.     
  9.  
  10.     
  11. namespace ConsoleApplication1
  12.     
  13. {
  14.     
  15.     class Program
  16.     
  17.     {
  18.     
  19.         static void Main(string[] args)
  20.     
  21.         {
  22.     
  23.             //tạo 1 bộ đọc tập tin C:\data.xml
  24.     
  25.             XmlTextReader textReader = new XmlTextReader("C:\\data.xml");
  26.     
  27.             //trong khi nút có giá trị thì in ra những thuộc tính của nó
  28.     
  29.             while (textReader.Read())
  30.     
  31.             {
  32.     
  33.                 //chuyển đến phần tử đầu tiên
  34.     
  35.                 textReader.MoveToElement();
  36.     
  37.                 Console.WriteLine("XmlTextReader Properties Test");
  38.     
  39.                 Console.WriteLine("===================");
  40.     
  41.  
  42.     
  43.                 //đọc những thuộc tính của phần tử này và hiển thị nó lên màn hình
  44.     
  45.                 Console.WriteLine("Name:" + textReader.Name);
  46.     
  47.                 Console.WriteLine("Base URI:" + textReader.BaseURI);
  48.     
  49.                 Console.WriteLine("Local Name:" + textReader.LocalName);
  50.     
  51.                 Console.WriteLine("Attribute Count:" + textReader.AttributeCount.ToString());
  52.     
  53.                 Console.WriteLine("Depth:" + textReader.Depth.ToString());
  54.     
  55.                 Console.WriteLine("Line Number:" + textReader.LineNumber.ToString());
  56.     
  57.                 Console.WriteLine("Node Type:" + textReader.NodeType.ToString());
  58.     
  59.                 Console.WriteLine("Attribute Count:" + textReader.Value.ToString());
  60.     
  61.             }
  62.     
  63.         }
  64.     
  65.     }
  66.     
  67. }

VIẾT XML

 

 
        
  1. using System;
  2.     
  3. using System.Collections.Generic;
  4.     
  5. using System.Text;
  6.     
  7. using System.Xml;
  8.     
  9.  
  10.     
  11. namespace ConsoleApplication1
  12.     
  13. {
  14.     
  15.     class Program
  16.     
  17.     {
  18.     
  19.         static void Main(string[] args)
  20.     
  21.         {
  22.     
  23.             //tạo một tập tin XML mới
  24.     
  25.             XmlTextWriter textWriter = new XmlTextWriter("C:\\firstXMLFile.xml", null);
  26.     
  27.             //mở tài liệu
  28.     
  29.             textWriter.WriteStartDocument();
  30.     
  31.  
  32.     
  33.             //Viết 1 dòng chú thích vào tài liệu
  34.     
  35.             textWriter.WriteComment("Chương trình XML đầu tiên của tôi");
  36.     
  37.  
  38.     
  39.             //Viết nút gốc
  40.     
  41.             textWriter.WriteStartElement("Student");
  42.     
  43.             //Viết phần tử đầu
  44.     
  45.             textWriter.WriteStartElement("r", "RECORD", "urn:record");
  46.     
  47.  
  48.     
  49.             //viết phần tử thứ 2
  50.     
  51.             textWriter.WriteStartElement("Name", "");
  52.     
  53.             textWriter.WriteString("Student");
  54.     
  55.             textWriter.WriteEndElement();
  56.     
  57.  
  58.     
  59.             //Viết phần tử thứ 3
  60.     
  61.             textWriter.WriteStartElement("Address", "");
  62.     
  63.             textWriter.WriteString("Colony");
  64.     
  65.             textWriter.WriteEndElement();
  66.     
  67.  
  68.     
  69.             //Viết mảng ký tự vào phần tử thứ 4
  70.     
  71.  
  72.     
  73.             char[] ch = new char[3];
  74.     
  75.             ch[0] = 'w';
  76.     
  77.             ch[1] = 'i';
  78.     
  79.             ch[2] = 'n';
  80.     
  81.  
  82.     
  83.             textWriter.WriteStartElement("MangKyTu");
  84.     
  85.             textWriter.WriteChars(ch, 0, ch.Length);
  86.     
  87.             textWriter.WriteEndElement();
  88.     
  89.  
  90.     
  91.             //kết thúc tài liệu
  92.     
  93.             textWriter.WriteEndDocument();
  94.     
  95.  
  96.     
  97.             //không viết nữa
  98.     
  99.             textWriter.Close();
  100.     
  101.         }
  102.     
  103.     }
  104.     
  105. }

Chúc các bạn thành công!

 

 
        
  1. using System;
  2.     
  3. using System.Xml;
  4.     
  5.  
  6.     
  7. public class GenerateXml {
  8.     
  9.  
  10.     
  11.     private static void Main() {
  12.     
  13.  
  14.     
  15.         // Tạo một tài liệu mới rỗng.
  16.     
  17.         XmlDocument doc = new XmlDocument();
  18.     
  19.         XmlNode docNode = doc.CreateXmlDeclaration("1.0""UTF-8"null);
  20.     
  21.         doc.AppendChild(docNode);
  22.     
  23.  
  24.     
  25.         // Tạo và chèn một phần tử mới.
  26.     
  27.         XmlNode productsNode = doc.CreateElement("products");
  28.     
  29.         doc.AppendChild(productsNode);
  30.     
  31.  
  32.     
  33.         // Tạo một phần tử lồng bên trong (cùng với một đặc tính).
  34.     
  35.         XmlNode productNode = doc.CreateElement("product");
  36.     
  37.         XmlAttribute productAttribute = doc.CreateAttribute("id");
  38.     
  39.         productAttribute.Value = "1001";
  40.     
  41.         productNode.Attributes.Append(productAttribute);
  42.     
  43.         productsNode.AppendChild(productNode);
  44.     
  45.  
  46.     
  47.         // Tạo và thêm các phần tử con cho nút product này
  48.     
  49.         // (cùng với dữ liệu text).
  50.     
  51.         XmlNode nameNode = doc.CreateElement("productName");
  52.     
  53.         nameNode.AppendChild(doc.CreateTextNode("Gourmet Coffee"));
  54.     
  55.         productNode.AppendChild(nameNode);
  56.     
  57.         XmlNode priceNode = doc.CreateElement("productPrice");
  58.     
  59.         priceNode.AppendChild(doc.CreateTextNode("0.99"));
  60.     
  61.         productNode.AppendChild(priceNode);
  62.     
  63.  
  64.     
  65.         // Tạo và thêm một nút product khác.
  66.     
  67.         productNode = doc.CreateElement("product");
  68.     
  69.         productAttribute = doc.CreateAttribute("id");
  70.     
  71.         productAttribute.Value = "1002";
  72.     
  73.         productNode.Attributes.Append(productAttribute);
  74.     
  75.         productsNode.AppendChild(productNode);
  76.     
  77.         nameNode = doc.CreateElement("productName");
  78.     
  79.         nameNode.AppendChild(doc.CreateTextNode("Blue China Tea Pot"));
  80.     
  81.         productNode.AppendChild(nameNode);
  82.     
  83.         priceNode = doc.CreateElement("productPrice");
  84.     
  85.         priceNode.AppendChild(doc.CreateTextNode("102.99"));
  86.     
  87.         productNode.AppendChild(priceNode);
  88.     
  89.  
  90.     
  91.         // Lưu tài liệu.
  92.     
  93.         doc.Save(Console.Out);
  94.     
  95.         Console.ReadLine();
  96.     
  97.     }
  98.     
  99. }

Tài liệu được tạo ra trông giống như sau:

 

 
        
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.     
  3. <products>
  4.     
  5.   <product id="1001">
  6.     
  7.     <productName>Gourmet Coffee</productName>
  8.     
  9.     <productPrice>0.99</productPrice>
  10.     
  11.   </product>
  12.     
  13.   <product id="1002">
  14.     
  15.     <productName>Blue China Tea Pot</productName>
  16.     
  17.     <productPrice>102.99</productPrice>
  18.     
  19.   </product>
  20.     
  21. </products>

Không có nhận xét nào:

Đăng nhận xét

(Chơi cho vui) AIRDROP CHAINGE FINANCE - dự án xây dựng ứng dụng ngân hàng số cho mọi người

 Không hiểu lắm về cái này, tuy nhiên thấy quảng cáo khá nhiều, lại chỉ cung cấp vài thông tin cá nhân (mà mấy ông lớn như facebook với goog...