Danh mục

Các giải pháp lập trình CSharp- P17

Số trang: 10      Loại file: pdf      Dung lượng: 2.61 MB      Lượt xem: 9      Lượt tải: 0    
Hoai.2512

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (10 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Các giải pháp lập trình CSharp- P17: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đềthường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu.
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P17 161 Chương 5: XML MessageBox.Show(err.Message); return; } // Đổ dữ liệu vào TreeView. ConvertXmlNodeToTreeNode(doc, treeXml.Nodes); // Mở rộng tất cả các nút. treeXml.Nodes[0].ExpandAll();}private void ConvertXmlNodeToTreeNode(XmlNode xmlNode, TreeNodeCollection treeNodes) { // Thêm một TreeNode mô tả XmlNode này. TreeNode newTreeNode = treeNodes.Add(xmlNode.Name); // Tùy biến phần text cho TreeNode dựa vào // kiểu và nội dung của XmlNode. switch (xmlNode.NodeType) { case XmlNodeType.ProcessingInstruction: case XmlNodeType.XmlDeclaration: newTreeNode.Text = ; break; case XmlNodeType.Element: newTreeNode.Text = ; 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 = ; 162 Chương 5: XML 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); } }}Xét file XML dưới đây (ProductCatalog.xml): Jones and Jones Unique Catalog 2004 2005-01-01 Gourmet Coffee The finest beans from rare Chilean plantations. 0.99 true Blue China Tea Pot A trendy update for tea drinkers. 102.99 true 163 Chương 5: XML Hình 5.1 Cấu trúc của một tài liệu XML[ Hình 5.2 InnerText của phần tử gốc Hình 5.3 InnerXml của phần tử gốc 164 Chương 5: XML Hình 5.4 OuterXml của phần tử gốc2. Chèn thêm nút vào tài liệu XML Bạn cần điều chỉnh một tài liệu XML bằng cách chèn vào dữ liệu mới, hoặc bạn muốn tạo một tài liệu hoàn toàn mới trong bộ nhớ. Tạo nút bằng một phương thức của XmlDocument (như CreateElement, CreateAttribute, CreateNode...). Kế tiếp, chèn nó vào bằng một phương thức của XmlNode (như InsertAfter, InsertBefore, hay AppendChild).Chèn một nút vào XmlDocument bao gồm hai bước: tạo nút rồi chèn nó vào vị trí thích hợp. Sauđó, bạn có thể gọi XmlDocument.Save để lưu lại những thay đổi.Để tạo một nút, bạn sử dụng một trong các phương thức của XmlDocument bắt đầu bằng từCreate, tùy thuộc vào kiểu của nút. Việc này bảo đảm nút sẽ có cùng không gian tên như phầncòn lại của tài liệu (bạn cũng có thể cung cấp một không gian tên làm đối số). Kế tiếp, bạnphải tìm một nút phù hợp và sử dụng một trong các phương thức chèn của nó để thêm nút mớivào.Ví dụ dưới đây trình bày kỹ thuật này bằng cách tạo một tài liệu XML mới: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. 165 Chương 5: XML 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(); }} 166 Chương 5: XMLTài liệu được tạo ra trông giống như sau: Gourmet Coffee 0.99 Blue China Tea Po ...

Tài liệu được xem nhiều: