XML ??
Extensible Markup Language หรือ XML คืออะไร ? ภาษาของ computer ที่ใช้งานสำหรับการกำหนดรูปแบบการเข้ารหัสของข้อมูลใน format ของทั้งที่มนุษย์อ่านและ computer อ่านได้ โดยมี specification คือ W3C XML 1.0
ถ้าเปรียบเทียบกับภาษา HTML จะแตกต่างกันที่ HTML ถูกออกแบบมาเพื่อการแสดงผลอย่างเดียวเท่านั้น เช่นให้แสดงผลตัวเล็ก ตัวใหญ่ เหมือนที่เคยเห็นในเวบเพจทั้วไป แต่ภาษา XML นั้นถูกออกแบบมาเพื่อเก็บข้อมูล โดยทั้งข้อมูลและโครงสร้างของข้อมูลนั้นๆไว้ด้วยกัน
ตัวอย่างของ XML
ภาพที่ 1.1 ไฟล์ .XML
โครงสร้างของ XML
- Tag สำหรับใน XML แล้วแท็กมีความหมายในลักษณะเดียวกับที่ใช้ใน HTML tag คือข้อความที่อยู่ระหว่างสัญลักษณ์ "<" และ ">" มี 2 แบบคือ
- แท็กเปิด (Start tag) เช่น
- แท็กปิด (End Tag) เช่น สังเกตุได้ว่าแท็กปิดเครื่องหมาย / อยู่หลังสัญลักษณ์ "<"
- Element คือโครงสร้างหลักของ XML ซึ่งอยู่ในรูปของแท็กจะมีลักษณะซ้อนกันเป็นชั้นๆโดย element เริ่มต้นที่แท็กเปิดและสิ้นสุดที่แท็กปิดในแท็กดียวกัน และ Root element จะเป็น element บนสุดของไฟล์ XML จากตัวอย่าง Element คือ <name>Jane Doe</name>
- Attribute คือข้อมูลความหมายเพิ่มเติมเป็นค่าคงที่ ถูกเขียนอยู่ภายใน tag เปิด <....> จะมีมากกว่า 1 , มี 1 อันหรือไม่มีเลยก็ได้ จากตัวอย่างที่ 1 ก็คือ Gender="M"> เป็นต้น
- XML declaration จะเริ่มต้นด้วย XML declaration เพื่อบอกข้อมูลของตัวมันเองเช่น <?xml version="1.0" encoding="UTF-8"?>
NodeJS Read Fle .xml
โดยเราสามารถนำ NodeJS มาอ่านไฟล์ .xml ได้เลย แต่! มันจะอ่านเป็น <tag> ต่างๆ แบบนี้
Code NodeJS
var fs = require("fs");
fs.readFile("data.xml", "utf-8", function(data, err) {
if (err) console.log(err);
console.log(data);
});
ภาพที่ 1.2 ผลทดสอบการนำ NodeJS มาอ่านไฟล์ .XML
ภาพที่ 1.3 ไฟล์ .XML
จากภาพจะเห็นได้ว่าผลลัพธ์นั้นดูหรือ อ่านได้ยากนิดนึง เจ้า NodeJS จึงมี Packet เสริมที่เรียกว่า "xml2json" ที่สามารถแปลง .xml ที่อ่านได้ให้มาอยู่ในรูปแบบ JSON
1. ติดตั้ง NodeJS และสร้าง Project ขึ้นมา
2. ติดตั้ง Packet xml2json
npm install xml2json3. เขียน Code ลงในไฟล์ index.js ตามนี้
var fs = require("fs"),
parseString = require("xml2js").parseString;
fs.readFile("data.xml", "utf-8", function(err, data) {
if (err) console.log(err);
// we log out the readFile results
console.log(data);
// we then pass the data to our method here
parseString(data, function(err, result) {
if (err) console.log(err);
// here we log the results of our xml string conversion
console.log(result.bookstore.book[0]);
});
});
แล้วรัน NodeJS จะพบว่าเมื่อแปลงจาก XML เป็น JSON จะทำให้อ่านข้อมูลได้ง่ายกว่า
ภาพที่ 1.4 ผลทดสอบการนำ NodeJS มาอ่านไฟล์ .XML
NodeJS Write Fle .xml
1. สร้างไฟล์ใหม่ เขียน Code ลงในไฟล์ ตามนี้ (ในที่นี้สร้างไฟล์ชื่อว่า edit.js)
var fs = require("fs"),
parseString = require("xml2js").parseString,
xml2js = require("xml2js");
fs.readFile("data.xml", "utf-8", function(err, data) {
if (err) console.log(err);
// we log out the readFile results
console.log(data);
// we then pass the data to our method here
parseString(data, function(err, result) {
if (err) console.log(err);
// here we log the results of our xml string conversion
console.log(result);
var json = result;
json.bookstore.book[0].title = "The Python Programming Language";
// create a new builder object and then convert
// our json back to xml.
var builder = new xml2js.Builder();
var xml = builder.buildObject(json);
fs.writeFile("data.xml", xml, function(err, data) {
if (err) console.log(err);
console.log("successfully written our update xml to file");
});
});
});
แล้วรัน NodeJS จะพบว่าเราสามารถแก้ไขข้อมูลในไฟล์ XML หรือ สร้างไฟล์ใหม่ได้
ภาพที่ 1.5 ผลทดสอบการก่อนนำ NodeJS มาแก้ไขไฟล์ .XML
ภาพที่ 1.6 ผลทดสอบการหลังนำ NodeJS มาแก้ไขไฟล์ .XML
ไม่มีความคิดเห็น:
แสดงความคิดเห็น