--
Đọ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
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Xml;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- //tạo 1 bộ đọc tập tin C:\data.xml
- XmlTextReader textReader = new XmlTextReader("C:\\data.xml");
- //trong khi nút có giá trị thì in ra những thuộc tính của nó
- while (textReader.Read())
- {
- //chuyển đến phần tử đầu tiên
- textReader.MoveToElement();
- Console.WriteLine("XmlTextReader Properties Test");
- Console.WriteLine("===================");
- //đọ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
- Console.WriteLine("Name:" + textReader.Name);
- Console.WriteLine("Base URI:" + textReader.BaseURI);
- Console.WriteLine("Local Name:" + textReader.LocalName);
- Console.WriteLine("Attribute Count:" + textReader.AttributeCount.ToString());
- Console.WriteLine("Depth:" + textReader.Depth.ToString());
- Console.WriteLine("Line Number:" + textReader.LineNumber.ToString());
- Console.WriteLine("Node Type:" + textReader.NodeType.ToString());
- Console.WriteLine("Attribute Count:" + textReader.Value.ToString());
- }
- }
- }
- }
VIẾT XML
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Xml;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- //tạo một tập tin XML mới
- XmlTextWriter textWriter = new XmlTextWriter("C:\\firstXMLFile.xml", null);
- //mở tài liệu
- textWriter.WriteStartDocument();
- //Viết 1 dòng chú thích vào tài liệu
- textWriter.WriteComment("Chương trình XML đầu tiên của tôi");
- //Viết nút gốc
- textWriter.WriteStartElement("Student");
- //Viết phần tử đầu
- textWriter.WriteStartElement("r", "RECORD", "urn:record");
- //viết phần tử thứ 2
- textWriter.WriteStartElement("Name", "");
- textWriter.WriteString("Student");
- textWriter.WriteEndElement();
- //Viết phần tử thứ 3
- textWriter.WriteStartElement("Address", "");
- textWriter.WriteString("Colony");
- textWriter.WriteEndElement();
- //Viết mảng ký tự vào phần tử thứ 4
- char[] ch = new char[3];
- ch[0] = 'w';
- ch[1] = 'i';
- ch[2] = 'n';
- textWriter.WriteStartElement("MangKyTu");
- textWriter.WriteChars(ch, 0, ch.Length);
- textWriter.WriteEndElement();
- //kết thúc tài liệu
- textWriter.WriteEndDocument();
- //không viết nữa
- textWriter.Close();
- }
- }
- }
Chúc các bạn thành công!
- using System;
- using System.Xml;
- public class GenerateXml {
- private static void Main() {
- // Tạo một tài liệu mới rỗng.
- XmlDocument doc = new XmlDocument();
- XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
- doc.AppendChild(docNode);
- // Tạo và chèn một phần tử mới.
- XmlNode productsNode = doc.CreateElement("products");
- doc.AppendChild(productsNode);
- // Tạo một phần tử lồng bên trong (cùng với một đặc tính).
- XmlNode productNode = doc.CreateElement("product");
- XmlAttribute productAttribute = doc.CreateAttribute("id");
- productAttribute.Value = "1001";
- productNode.Attributes.Append(productAttribute);
- productsNode.AppendChild(productNode);
- // Tạo và thêm các phần tử con cho nút product này
- // (cùng với dữ liệu text).
- XmlNode nameNode = doc.CreateElement("productName");
- nameNode.AppendChild(doc.CreateTextNode("Gourmet Coffee"));
- productNode.AppendChild(nameNode);
- XmlNode priceNode = doc.CreateElement("productPrice");
- priceNode.AppendChild(doc.CreateTextNode("0.99"));
- productNode.AppendChild(priceNode);
- // Tạo và thêm một nút product khác.
- productNode = doc.CreateElement("product");
- productAttribute = doc.CreateAttribute("id");
- productAttribute.Value = "1002";
- productNode.Attributes.Append(productAttribute);
- productsNode.AppendChild(productNode);
- nameNode = doc.CreateElement("productName");
- nameNode.AppendChild(doc.CreateTextNode("Blue China Tea Pot"));
- productNode.AppendChild(nameNode);
- priceNode = doc.CreateElement("productPrice");
- priceNode.AppendChild(doc.CreateTextNode("102.99"));
- productNode.AppendChild(priceNode);
- // Lưu tài liệu.
- doc.Save(Console.Out);
- Console.ReadLine();
- }
- }
Tài liệu được tạo ra trông giống như sau:
- <?xml version="1.0" encoding="UTF-8"?>
- <products>
- <product id="1001">
- <productName>Gourmet Coffee</productName>
- <productPrice>0.99</productPrice>
- </product>
- <product id="1002">
- <productName>Blue China Tea Pot</productName>
- <productPrice>102.99</productPrice>
- </product>
- </products>
Không có nhận xét nào:
Đăng nhận xét