Unity nâng cao >> P4 - Xử lý XML

Xin chào các bạn độc giả thân mến, thời gian bận rộn nên giờ mới viết tiếp bài viết này, hi vọng giúp ai đó biết cách xử lý dữ liệu với XML. Bài này viết cho các bạn đã vọc xong basic nhé!

- Thông thường với .Net thì XML chỉ là chuyện nhỏ, bởi khi ta gõ lệnh trên Visual Studio, ta được hỗ trợ. Ngược lại Unity không có sự hỗ trợ này cho các lập trình viên. Ngay cả phiên bản mới nhất lúc này là 3.4.2 cũng chưa có sự xuất hiện của XML.
- Tại sao chúng ta sử dụng XML?  XML là một định dạng khá quan trọng trong quá trình truyền data trên Internet, vì khi truyền và nhận dữ liệu dạng này, ta có được các format của chuỗi tín hiệu. Độ an toàn của tín hiệu thì phụ thuộc vào vấn đề khác, không nói đến ở đây.

- Vậy ta dùng cách nào để có thể chạy XML trong Unity?

Bước 1: Import thư viện "System.Xml", Thư viện này cần được gõ vào để ta thao tác với XML.

Bước 2: Tùy vào nhiệm vụ xử lý XML ta sẽ dùng các loại câu lệnh sau:

* Tạo một XmlDocument để thao tác với XML string
JS:
var document: XmlDocument = new XmlDocument ();

CS:
XmlDocument document = new XmlDocument();

 * Nếu ta muốn tạo các node cho XML thì dùng câu lệnh Load();

 JS / CS:
document.Load("<node name='langvv' task='test_xml'/>");


* Để truy cập vào các node con của root ta dùng cách thức:

JS:
               var root: XmlNode = document.DocumentElement; //FirstChild

                var node: XmlNode;
               
                for (var i: int = 0; i < root.ChildNodes.Count; i++){

                    node = root.ChildNodes[i];

                    Debug.Log("Data: "+ node.OuterXml.ToString());
                }

CS:

               XmlNode  root = document.DocumentElement; //FirstChild

                XmlNode node;
               
                for (int i = 0; i < root.ChildNodes.Count; i++){

                    node = root.ChildNodes[i];

                    Debug.Log("Data: "+ node.OuterXml.ToString());
                }
* Để truy cập tới các giá trị thuộc tính trong một node ta dùng cách sau:
JS:

    var document: XmlDocument = new XmlDocument ();

    document.LoadXml ("<node name='langvv' task='test_xml'/>");

    var root: XmlNode = document.FirstChild;

    var node: XmlNode;

    var arrAttributes: XmlAttributeCollection = root.Attributes;
   
    var nameAtt: String = arrAttributes.GetNamedItem("name").Value;

    var taskAtt: String = arrAttributes.GetNamedItem("task").Value;

CS: (Các bạn tự chuyển nhé, cái này dễ ấy mà.)

Và còn rất nhiều thao tác với XML nữa, các thao tác đó làm tương tự như khi bạn sử dụng XML trong .Net framework.

Bạn nào đã sử dụng quen XML chắc ko có vấn đề gì thắc mắc, ai có vấn đề về xử lý xml xin cứ cho ý kiến nhé!