Java JDOM Parser - ภาพรวม
JDOM เป็นไลบรารีโอเพนซอร์สที่ใช้ Java เพื่อแยกวิเคราะห์เอกสาร XML โดยทั่วไปเป็น API ที่เป็นมิตรกับนักพัฒนา Java เป็น Java ที่ปรับให้เหมาะสมและใช้คอลเลกชัน Java เช่น List และ Arrays
JDOM ทำงานร่วมกับ DOM และ SAX API และรวมสิ่งที่ดีที่สุดจากทั้งสองอย่างเข้าด้วยกัน มีหน่วยความจำเหลือน้อยและเร็วเกือบเท่า SAX
การตั้งค่าสภาพแวดล้อม
ในการใช้ตัวแยกวิเคราะห์ JDOM คุณควรมี jdom.jar ใน classpath ของแอปพลิเคชันของคุณ ดาวน์โหลดjdom-2.0.5.zip
ควรใช้เมื่อใด
คุณควรใช้ตัวแยกวิเคราะห์ JDOM เมื่อ -
คุณจำเป็นต้องรู้มากเกี่ยวกับโครงสร้างของเอกสาร XML
คุณต้องย้ายส่วนต่างๆของเอกสาร XMl ไปรอบ ๆ (คุณอาจต้องการจัดเรียงองค์ประกอบบางอย่างเป็นต้น)
คุณจำเป็นต้องใช้ข้อมูลในเอกสาร XML มากกว่าหนึ่งครั้ง
คุณเป็นนักพัฒนา Java และต้องการใช้ประโยชน์จากการแยกวิเคราะห์ XML ที่ปรับให้เหมาะสมกับ Java
สิ่งที่คุณได้รับ?
เมื่อคุณแยกวิเคราะห์เอกสาร XML ด้วยตัวแยกวิเคราะห์ JDOM คุณจะได้รับความยืดหยุ่นในการเรียกคืนโครงสร้างทรีที่มีองค์ประกอบทั้งหมดในเอกสารของคุณโดยไม่ส่งผลกระทบต่อหน่วยความจำของแอปพลิเคชัน
JDOM มีฟังก์ชันยูทิลิตี้ที่หลากหลายซึ่งคุณสามารถใช้เพื่อตรวจสอบเนื้อหาและโครงสร้างของเอกสาร XML ในกรณีที่เอกสารมีโครงสร้างที่ดีและทราบโครงสร้าง
ข้อดี
JDOM ช่วยให้นักพัฒนา Java มีความยืดหยุ่นและบำรุงรักษาง่ายของโค้ดแยกวิเคราะห์ XML เป็น API ที่มีน้ำหนักเบาและรวดเร็ว
คลาส JDOM
JDOM กำหนดคลาส Java ต่างๆ นี่คือชั้นเรียนที่พบบ่อยที่สุด -
Document- แสดงถึงเอกสาร XML ทั้งหมด วัตถุเอกสารมักเรียกว่าโครงสร้าง DOM
Element- แสดงถึงองค์ประกอบ XML ออบเจ็กต์องค์ประกอบมีวิธีการจัดการกับองค์ประกอบลูกข้อความแอตทริบิวต์และเนมสเปซ
Attribute- แสดงถึงคุณลักษณะขององค์ประกอบ แอตทริบิวต์มีวิธีการรับและตั้งค่าของแอตทริบิวต์ มีพาเรนต์และประเภทแอตทริบิวต์
Text - แสดงถึงข้อความของแท็ก XML
Comment - แสดงความคิดเห็นในเอกสาร XML
วิธีการทั่วไปของ JDOM
เมื่อคุณทำงานกับ JDOM มีหลายวิธีที่คุณจะใช้บ่อยๆ -
SAXBuilder.build(xmlSource)() - สร้างเอกสาร JDOM จากแหล่ง xml
Document.getRootElement() - รับองค์ประกอบรากของ XML
Element.getName() - รับชื่อของโหนด XML
Element.getChildren() - รับโหนดลูกโดยตรงทั้งหมดขององค์ประกอบ
Node.getChildren(Name) - รับโหนดลูกโดยตรงทั้งหมดพร้อมชื่อที่กำหนด
Node.getChild(Name) - รับโหนดลูกตัวแรกพร้อมชื่อที่กำหนด