Tài liệu XML phần 1 doc - Pdf 92

Chương 5 : XML

Một trong những khía cạnh đáng chú ý nhất của Microsoft .NET Framework là sự tích
hợp sâu sắc với XML. Trong nhiều ứng dụng .NET, bạn sẽ không nhận thấy rằng mình
đang sử dụng các kỹ thuật XML—chúng sẽ được sử dụng phía hậu trường khi bạn tuần tự
hóa một Microsoft ADO.NET DataSet, gọi một dịch vụ Web XML, hoặc đọc các thiết lập
ứng dụng trong một file cấu hình Web.config. Trong các trường hợp khác, bạn sẽ muốn
làm việc trực tiếp với không gian tên System.Xml để thao tác dữ liệu XML. Các tác vụ
XML thông thường không chỉ phân tích một file XML mà còn xác nhận tính hợp lệ của nó
dựa trên một XML Schema, áp dụng phép biến đổi XSL để tạo một tài liệu hay trang
HTML mới, và tìm kiếm một cách thông minh với XPath. Các mục trong chương này
trình bày các vấn đề sau:

Các kỹ thuật dùng để đọc, phân tích, và thao tác dữ liệu XML (mục 5.1, 5.2, 5.3, và
5.7).

Duyệt một tài liệu XML để tìm các nút cụ thể theo tên (mục 5.4), theo không gian
tên (mục 5.5), hay theo biểu thức XPath (mục 5.6).

Xác nhận tính hợp lệ của một tài liệu XML dựa trên một XML Schema (mục 5.8).

Tuần tự hóa một đối tượng thành XML (mục 5.9), tạo XML Schema cho một lớp
(mục 5.10), và tạo mã nguồn cho lớp dựa trên một XML Schema (mục 5.11).

Biến đổi một tài liệu XML thành một tài liệu khác bằng XSLT stylesheet (mục 5.12).
1.1
Hiển thị cấu trúc của một tài liệu XML trong TreeView
V
V
• ChildNodes là tập hợp các nút lồng bên trong ở mức
đầu tiên.
• Name là tên của nút.
• NodeType là một thành viên thuộc kiểu liệt kê System.Xml.XmlNodeType, cho biết
kiểu của nút (phần tử, đặc tính, text...).
• Value là nội dung của nút, nếu đó là nút text hay nút CDATA.
• Attributes là tập hợp các nút mô tả các đặc tính được áp dụng cho phần tử.
• InnerText là chuỗi chứa giá trị (text) của nút hiện hành và tất cả các nút lồng bên
trong.
• InnerXml là chuỗi chứa thẻ đánh dấu XML cho tất cả
các nút lồng bên trong.
• OuterXml là chuỗi chứa thẻ đánh dấu XML cho nút hiện hành và tất cả các nút lồng
bên trong.
Ví dụ dưới đây duyệt qua tất cả các nút của một XmlDocument (bằng thuộc tính
ChildNodes và một phương thức đệ quy) rồi hiển thị chúng trong một TreeView.
using System;
using System.Windows.Forms;
using System.Xml;

public class XmlTreeDisplay : System.Windows.Forms.Form{
private System.Windows.Forms.Button cmdLoad;
private System.Windows.Forms.Label lblFile;
private System.Windows.Forms.TextBox txtXmlFile;
private System.Windows.Forms.TreeView treeXml;

// (Bỏ qua phần mã designer.)
private void cmdLoad_Click(object sender, System.EventArgs e) {

// Xóa cây.
treeXml.Nodes.Clear();

newTreeNode.Text = "<?" + xmlNode.Name + " " +
xmlNode.Value + "?>";
break;
case XmlNodeType.Element:
newTreeNode.Text = "<" + xmlNode.Name + ">";
break;
case XmlNodeType.Attribute:
newTreeNode.Text = "ATTRIBUTE: " + xmlNode.Name;
break;
case XmlNodeType.Text:
case XmlNodeType.CDATA:
newTreeNode.Text = xmlNode.Value;
break;
case XmlNodeType.Comment:
newTreeNode.Text = "<!--" + xmlNode.Value + "-->";
break;
}

// Gọi phương thức này một cách đệ quy cho mỗi đặc tính
// (XmlAttribute là một lớp con của XmlNode).
if (xmlNode.Attributes != null) {

foreach (XmlAttribute attribute in xmlNode.Attributes) {
ConvertXmlNodeToTreeNode(attribute, newTreeNode.Nodes);
}
}

// Gọi phương thức này một cách đệ quy cho mỗi nút con.
foreach (XmlNode childNode in xmlNode.ChildNodes) {
ConvertXmlNodeToTreeNode(childNode, newTreeNode.Nodes);


Hình 5.3 InnerXml của phần tử gốc
The image part with relationship ID rId5 was not found in the file.
The image part with relationship ID rId6 was not found in the file.
The image part with relationship ID rId7 was not found in the file.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status