1. Trang chủ
  2. » Công Nghệ Thông Tin

Thao tác XML - Sử dụng DOM trong .NET – Phần 1 pptx

8 435 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 105,52 KB

Nội dung

Thao tác XML Sử dụng DOM trong .NET – Phần 1 Document Object Model (DOM) thực thi trong .NET hỗ trợ các kĩ thuật W3C DOM Level 1 và Core DOM Level 2. DOM được thực thi thông qua lớp XmlNode, một lớp ảo mô tả một nút của tài liệu. Ngoài ra còn có một lớp XmlNodeList là một danh sách có thứ tự các nút. Đây là một danh sách sống, và bất kì thay đổi nào cũng sẽ cập nhật ngay vào danh sách. XmlNodeList hỗ trợ truy cập chỉ mục và truy cập lặp. Còn có một lớp ảo khác, XmlCharacterData, nó là lớp mở rộng của XmlLinkedNode, và cung cấp các phương thức sử dụng văn bản cho các lớp khác. Các lớp XmlNode và XmlNodeList trang điểm cho thực thi DOM trong .NET Framework. Đây là một danh sách các lớp cơ sở trong XmlNode: Class Name Description XmlLinkedNode Trả về nút trước và sau nút hiện tại. Thêm các thuộc tính NextSibling và PreviousSibling và o XmlNode. XmlDocument Miêu tả toàn bộ tài li ệu. Thực thi các đặc điểm kĩ thuật DOM Level 1 và Level 2. XmlDocumentFragment Miêu tả mô hình cây thư mục của tài liệu. XmlAttribute Một đối tượng thuộc tính của một đối tư ợng XmlElement. XmlEntity Phân tách và tổ hợp các nút. XmlNotation Chứa cách chú thích trong môt DTD hoặc sơ đồ. Các lớp sau mở rộng XmlCharacterData: Class Name Description XmlCDataSection Một đối tượng mô tả một đoạn CData section của một tài liệu. XmlComment Mô tả một đối tượng ghi chú XML. XmlSignificantWhitespace Mô t ả một nút với khoảng trắng. Các nút chỉ được tạo khi cờ PreserveWhiteSpace là true. XmlWhitespace Miêu tả whitespace trong một thành ph ần ghi chú. Các nút đư ợc tạo chỉ khi cờ PreserveWhiteSpace là true. XmlText Ghi chú dạng văn bản cảu một thành ph ần hoặc thuộc tính. Cuối cùng, tập các lớp tiếp theo mở rộng lớp XmlLinkedNode: Class Name Description XmlDeclaration Miêu tả nút khai báo (<?xml version='1.0' >) XmlDocumentType Quan hệ dữ liệu với khai báo kiểu tài liệu XmlElement Một đối tượng thành phần XML XmlEntityReferenceNode Mô tả một nút tham chiếu tồn tại XmlProcessingInstruction Chứa một cấu trúc xử lí XML Như bạn thấy, .NET tạo sẽ một lớp phù hợp với bất kì kiểu XML nào mà bạn bắt gặp. Bởi vậy, bạn sẵn có một bộ các công cụ mạnh mẽ và mềm dẻo. Chúng ta sẽ không đi vào chi tiết các lớp, nhưng chúng ta sẽ dùng một số ví dụ. Sau đây là sơ đồ các lớp: Sử dụng lớp XmlDocument XmlDocument và lớp xuất phát XmlDataDocument (chúng ta sẽ xem xét sau trong chương) là các lớp bạn sẽ dùng để miêu tả DOM trong .NET. Không giống như XmlReader và XmlWriter, XmlDocument cho cung cấp cho bạn khả năng đọc và viết như truy xuất ngẫu nhiên cây DOM . XmlDocument tương tự như thực thi DOM trong MSXML. Nếu bạn đã từng lập trình với MSXML bạn sẽ cảm thấy tiện lợi khi dùng XmlDocument. Lấy một ví dụ về tạo một đối tượng XmlDocument, load một tài liệu từ đĩa, và load các tiêu đề vào một listbox. Nó giống như mọt ví dự mà chúng ta đã tạo trong phần XmlReader. Cái khác ở đây là chúng ta sẽ chọn các nút mà chúng ta sẽ làm việc thay vì duyệt qua các nút trong tài liệu như đã từng làm. Đây là mã. Hãy xem cách làm việc của nó và so sánh với ví dụ XmlReader (file có thể tìm thấy trong thư mục DOMSample1): private void button1_Click(object sender, System.EventArgs e) { // doc is declared at the module level // change path to match your path structure doc.Load(" \\ \\ \\books.xml"); // get only the nodes that we want XmlNodeList nodeLst=doc.GetElementsByTagName("title"); // iterate through the XmlNodeList foreach(XmlNode node in nodeLst) listBox1.Items.Add(node.InnerText); } Chú ý rằng chúng ta cũng có thể thêm khai báo sau vào mô module này: private XmlDocument doc=new XmlDocument(); Nếu chúng ta chỉ muốn làm như vậy thì dùng XmlReader sẽ tốt hơn vì chỉ cần duyệt qua tài liệu một lần duy nhất để load dữ liệu cho the listbox. XmlReader được thiết kế cho mục đích này. Nếu bạn muốn tham chiếu lại một nút, thì dùng XmlDocument là cách tốt nhất. Mở rộng ví dụ trên bằng cách thêm một quản lí sự kiện khác (đây là DOMSample2): private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) { //create XPath search string string srch="bookstore/book[title='" + listBox1.SelectedItem.ToString() + "']"; //look for the extra data XmlNode foundNode = doc.SelectSingleNode(srch); if(foundNode != null) MessageBox.Show(foundNode.InnerText); else MessageBox.Show("Not found"); } Trong ví dụ này, chúng ta load các tựa trong tài liệu books.xml vào listbox, giống như trong ví dụ trên. Khi chúng ta click vào listbox, khi đó sự kiện SelectedIndexChanged() được phát ra. Trong trường hợp này, chúng ta tạo mọt văn bản của đối tượng được tạo trong listbox (tựa của sách) tạo một XPath statement và truyền nó cho phương phương thức SelectSingleNode() của đối tượng doc. Nó trả về sách có tựa được tìm thấy. Sau đó chúng ta biểu diễn InnerText của nút trong một message box. Chúng ta có thể giữ clicking trên mục chọn trong listbox, tài liệu đã được load lên sẽ không thay đổi cho đến khi chúng ta thả tay ra. Một ghi chú nhanh có liên quan đến phương thức SelectSingleNode(). Đó là thực thi XPath trong lớp XmlDocument. Có hai phương thức SelectSingleNode() và SelectNodes(). Cả hai phương thức này đều được định nghĩa trong XmlNode, là lớp xuất phát của XmlDocument. SelectSingleNode() trả về một XmlNode và SelectNodes() trả về một XmlNodeList. Tất nhiên, không gian System.Xml.XPath chứa một thực thi XPath mạnh, và sẽ xem xét trong chương sau. . Thao tác XML Sử dụng DOM trong .NET – Phần 1 Document Object Model (DOM) thực thi trong .NET hỗ trợ các kĩ thuật W3C DOM Level 1 và Core DOM Level 2. DOM được thực thi thông qua lớp XmlNode,. Sử dụng lớp XmlDocument XmlDocument và lớp xuất phát XmlDataDocument (chúng ta sẽ xem xét sau trong chương) là các lớp bạn sẽ dùng để miêu tả DOM trong .NET. Không giống như XmlReader và XmlWriter,. khác, XmlCharacterData, nó là lớp mở rộng của XmlLinkedNode, và cung cấp các phương thức sử dụng văn bản cho các lớp khác. Các lớp XmlNode và XmlNodeList trang điểm cho thực thi DOM trong .NET

Ngày đăng: 30/07/2014, 18:20

TỪ KHÓA LIÊN QUAN

w