บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ xml

การแก้ไขข้อความ ระหว่างคำ ในไฟล์ XML ด้วย Regular Expression

รูปภาพ
ในกรณีที่ต้องการเปลี่ยนแปลงข้อความใน text file เช่น  สมมุติว่า มีไฟล์ xml ดังข้างล่างนี้ ต้องการเปลี่ยน คำว่า "ข้อ 1" ซึ่งอยู่ระหว่าง <qNum> และ </qNum> เป็นอย่างอื่น เช่น <qNum>id1627193500:date1627453500</qNum> จะทำอย่างไร อย่างนี้ก็ต้องใช้ regular expression เข้ามาช่วย โดยใช้ lookbehind คือ (?<=) และ look ahead คือ (?=) เช่น (?<=<qNum>)(.*)(?=</qNum>) เครื่องหมาย () เป็นการจัดกลุ่ม ข้อความข้างต้น มี 3 กลุ่ม คือ  (?<=<qNum>) และ (.*) และ (?=</qNum>) ?<= คือ อะไรที่อยู่หลังส่วนนี้ <qNum> คือ ข้อความที่ระบุว่า ให้อยู่หลังอะไร .* คือ แทนอะไรก็ได้ ?= คือ อะไรที่อยู่ก่อนหน้าส่วนนี้ </qNum> คือ ข้อความที่ต้องการให้อยู่ก่อน อะไรก็ได้ที่อยู่ก่อนนี้ เพราะฉะนั้น ก็จะได้ว่า ส่วนที่จะให้แทนที่ คือ อะไรก็ได้ ที่อยู่หลัง <qNum> และ อยู่ก่อนคำว่า </qNum> ทีนี้ ปัญหาต่อไปคือ แล้วจะใช้ editor อะไร ที่จะใช้ regular expression นี้ ลองใช้ EditPlus ผลที่ได้ คือ ลองใช้ Microsoft Word ก็ไม่ได้เหมือนกัน แต่ มี Text

java XML Parser ภาษาไทย

รูปภาพ
การอ่านไฟล์ xml ที่มีตัวอักษรภาษาไทย ด้วยภาษาจาวา บางครั้งจะเกิด Error โดยแจ้งว่า เป็น Invalid byte 2 of 2-byte UTF-8 sequence สาเหตุหลัก คือเรื่องของ encoding ซึ่งจำเป็นต้องใช้สำหรับการเปลี่ยนไฟล์จากรูปแบบหนึ่ง ไปสู่อีกรูปแบบหนึ่ง การแก้ปัญหาหรือการหลีกเลี่ยงไม่ให้เกิดปัญหา คือการกำหนด File Encoding ของไฟล์ XML ให้เป็น UTF-8 ในกรณีที่ ไฟล์ XML ใช้ Encoding เป็น ANSI ต้องเปลี่ยนให้เป็น UTF-8 เพื่อแก้ไขปัญหาดังกล่าว การเปลี่ยน Encoding ทำได้ โดยใช้โปรแกรม Text-editor เช่น EditPlue หรือ Notepad ซึ่งทำได้ ดังนี้ การเปลี่ยน File Encoding ด้วย EditPlus เปิดไฟล์ XML ด้วยโปรแกรม EditPlus ไปที่ Document > File Encoding > Change File Encoding... เลือก UTF-8 บันทึกไฟล์ การเปลี่ยน File Encoding ด้วย Notepad (Windows 10) เปิดโปรแกรม Notepad ไปที่ File > Open เลือกเปิดไฟล์ทั้งหมด (All Files) ไปที่ไฟล์ xml ที่ต้องการ และคลิกเลือก คลิกเปลี่ยน Encoding  คลิก Open เพื่อเปิดไฟล์ คลิก Save และปิดไฟล์ เมื่อเรียกใช้ XML Parser ของ  Java จะไม่พบข้อผิดพลาด แ