ความแตกต่างระหว่าง XmlDocument และ XPathDocument (พร้อมตาราง)

สารบัญ:

Anonim

การจัดการไฟล์ XML เป็นเรื่องปกติมาก เนื่องจากมีแอปพลิเคชันกว้างๆ ที่มีรูปแบบไฟล์ใน Microsoft Office และ Google docs, การแลกเปลี่ยนข้อมูล B2B เป็นต้น ทั้ง XmlDocument และ XPathDocument เป็นวิธีต่างๆ หรือเป็นเนมสเปซสำหรับจัดการไฟล์ XML แต่พวกเขามีแนวทางที่แตกต่างกันและยังแตกต่างกันไปตามคุณลักษณะ การใช้ XmlDocument และ XPathDocument ขึ้นอยู่กับจำนวนฟังก์ชันที่ผู้ใช้ต้องดำเนินการกับเอกสาร XML เฉพาะ

XmlDocument กับ XPathDocument

ความแตกต่างระหว่าง XmlDocument และ XPathDocument คือ XmlDocument มีทั้งความสามารถในการอ่านและเขียน ในขณะที่ XPathDocument สามารถอ่านไฟล์ในรูปแบบ XML เท่านั้น เนื่องจาก XPathDocument ไม่มีความสามารถในการเขียนใดๆ จึงมีขนาดเล็กกว่า แต่ขาดความยืดหยุ่นของ XmlDocument เนื่องจากฟังก์ชันเพิ่มเติมสามารถดำเนินการได้ในอันหลัง

XmlDocument ถูกกำหนดเป็นคลาสในหน่วยความจำที่แสดงถึงเอกสาร XML ผู้ใช้สามารถใช้คลาสนี้เพื่อดำเนินการฟังก์ชันต่างๆ เช่น โหลด ตรวจสอบ เพิ่ม แก้ไข และจัดตำแหน่ง XML ในเอกสาร XmlDocument ใช้ W3C XML DOM (Document Object Model) ระดับ 1 และแกนระดับ 2 XmlDocument ช่วยให้ XML สามารถโหลดลงใน DOM ตามด้วยการแก้ไขที่จำเป็น

คลาส XPathDocument ยังมีการแสดงเอกสาร XML ในหน่วยความจำ แต่ไม่เหมือนกับ XmlDocument ที่ไม่อนุญาตให้มีความสามารถในการเขียนใดๆ XPathDocument จัดเตรียมคุณลักษณะแบบอ่านอย่างเดียวโดยใช้แบบจำลองข้อมูล XPath XPathDocument ใช้ได้กับทั้ง.NET Core และ.NET Framework

ตารางเปรียบเทียบระหว่าง XmlDocument และ XPathDocument

พารามิเตอร์ของการเปรียบเทียบ

XmlDocument

XPathDocument

เข้าใกล้ XmlDocument มีแนวทางเชิงวัตถุ ประกอบด้วยการสร้างและเชื่อมโยงวัตถุกับไฟล์เฉพาะ XPathDocument มีแนวทางเชิงข้อมูล
อ่านเขียน XmlDocument สามารถดำเนินการทั้งอ่านและเขียนฟังก์ชันพร้อมกับการเพิ่มโหนดใหม่และการลบโหนดที่มีอยู่ XPathDocument สามารถดำเนินการได้เฉพาะฟังก์ชันการอ่าน และไม่มีตัวเลือกในการแก้ไขเอกสาร XML
ความยืดหยุ่น เนื่องจาก XmlDocument สามารถทำหน้าที่หลายอย่าง เช่น อ่าน เขียน ลบ เพิ่ม และแก้ไขแอตทริบิวต์ จึงมีความยืดหยุ่นสูง XPathDocument ไม่ยืดหยุ่นเท่า XmlDocument เนื่องจากก่อนหน้านี้สามารถอ่านได้เฉพาะไฟล์ XML
การสร้างเอกสาร XmlDocument สามารถสร้างเอกสารตั้งแต่เริ่มต้น แล้วทำการเปลี่ยนแปลงกับเอกสารนั้น XPathDocument ไม่สามารถสร้างเอกสารได้ ดังนั้นผู้ใช้ควรตรวจสอบให้แน่ใจว่ามีไฟล์อยู่ก่อนที่จะเข้าถึง
ความเร็ว XmlDocument ไม่ต้องการเมื่อมีการเปิดไฟล์ขนาดใหญ่เพื่อการอ่านเท่านั้น เนื่องจากจะทำให้กระบวนการช้าลง เนื่องจากความเรียบง่าย XPathDocument จึงสามารถเปิดและอ่านไฟล์ขนาดใหญ่ได้อย่างรวดเร็ว

XmlDocument คืออะไร?

การแทนค่าในหน่วยความจำของเอกสาร XML ที่สามารถอ่าน เขียน และแก้ไขแอตทริบิวต์ของไฟล์ได้เช่นเดียวกับคลาส XmlDocument เนื่องจากมันทำหน้าที่หลายอย่าง โดยทั่วไป XmlDocument จึงเป็นที่ต้องการมากกว่า XpathDocument สำหรับอินสแตนซ์และวัตถุประสงค์ทั่วไปทั้งหมด แต่ XmlDocument จะทำให้กระบวนการเปิดไฟล์ขนาดใหญ่ช้าลง ซึ่งเป็นข้อเสียอย่างหนึ่งของมัน

เมื่อเปิดไฟล์ XML ใน DOM หากตำแหน่งไฟล์เฉพาะที่ผู้ใช้อ้างถึงว่างเปล่า ไฟล์จะสร้าง XML ใหม่และโหลดขึ้นมา นี่เป็นหนึ่งในข้อได้เปรียบที่ใหญ่ที่สุดของ XmlDocument ที่สามารถสร้างไฟล์ใหม่ได้ทันทีและทำการเปลี่ยนแปลง

XmlDocument อนุญาตให้ผู้ใช้นำทางผ่านโหนดต่างๆ ของไฟล์ สามารถเข้าถึงทั้งโหนดพาเรนต์และโหนดย่อยและยังสามารถนำทางไปข้างหน้าและข้างหลังข้ามโหนดพี่น้อง ขณะใช้ XmlDocument สตริงการสืบค้น XPath จะใช้เพื่อค้นหาโหนดข้อมูลตั้งแต่หนึ่งโหนดขึ้นไป

นอกเหนือจากการค้นหาและเข้าถึงโหนดต่างๆ จากระดับต่างๆ แล้ว XmlDocument ยังสามารถเพิ่มหรือแก้ไขโหนดได้อีกด้วย ในการเพิ่มโหนดใหม่ จะใช้เมธอด CreateElement หรือ CreateNode และสำหรับการลบเมธอด RemoveChild ตำแหน่งของโหนดยังสามารถเลื่อนได้ตามความสะดวก

XPathDocument คืออะไร?

คลาส XPathDocument เป็นที่รู้จักกันดีสำหรับการแสดงไฟล์ XML ในหน่วยความจำแบบอ่านอย่างเดียว เป็นคลาสที่เรียบง่ายและไม่มีฟังก์ชันมากมายในไฟล์หรือโหนด XPathDocument สามารถอ่านไฟล์ขนาดใหญ่ได้อย่างรวดเร็ว ดังนั้นเมื่อผู้ใช้ต้องการอ่านไฟล์ XML เท่านั้น XPathDocument จึงเป็นที่ต้องการมากกว่า XmlDocument

มีตัวสร้างหลายตัวสำหรับ XPathDocument ที่ใช้เพื่อวัตถุประสงค์ต่างๆ ตัวอย่างเช่น XPathDocument(Stream) ใช้สำหรับการเริ่มต้นอินสแตนซ์ใหม่ของคลาสนี้ในออบเจกต์สตรีม ในทำนองเดียวกัน XPathDocument(String) ยังเตรียมข้อมูลเบื้องต้นอินสแตนซ์ใหม่จากข้อมูล XML แต่ไม่เจาะจงในออบเจ็กต์สตรีม ตัวสร้างอื่นๆ บางตัว ได้แก่ XPathDocument(TextReader), XPathDocument(XmlReader) เป็นต้น

ใน XPathDocument เมธอด CreateNavigator() ใช้เพื่อเริ่มต้นวัตถุ XPathNavigator แบบอ่านอย่างเดียว สิ่งนี้จะอ่านผ่านโหนดที่มีอยู่ทั้งหมดใน XPathDocument วิธีเท่ากับ (Object) ใช้เพื่อตรวจสอบว่าวัตถุที่ระบุเท่ากับวัตถุปัจจุบันหรือไม่ มีวิธีอื่นใน XPathDocument ด้วยเช่นกัน ซึ่งช่วยปรับปรุงฟังก์ชันที่จำกัดของมัน

ความแตกต่างหลักระหว่าง XmlDocument และ XPathDocument

บทสรุป

ทั้ง XmlDocument และ XPathDocument เป็นการแสดงแทนไฟล์ XML ในหน่วยความจำ เมื่อเลือก XmlDocument แสดงว่าจำเป็นต้องมีฟังก์ชันหลายอย่างในการแก้ไขเอกสาร XML สำหรับวัตถุประสงค์แบบอ่านอย่างเดียว แนะนำให้ใช้ XPathDocument

ขณะใช้ XPathDocument ผู้ใช้ต้องระมัดระวังและต้องระบุที่อยู่ที่ถูกต้องสำหรับไฟล์ XML เนื่องจากหากไม่มีไฟล์อยู่ XPathDocument จะไม่สามารถสร้างรอยขีดข่วนและดำเนินการเปลี่ยนแปลงรูปแบบไฟล์แบบทันทีได้

นอกจากนี้ ถ้ามีการเปิดไฟล์ XML เพื่อการอ่านเท่านั้น ผู้ใช้ควรใช้คลาส XPathDocument คลาส XPathDocument สามารถเปิดไฟล์ขนาดใหญ่ได้อย่างรวดเร็ว ซึ่งช่วยประหยัดเวลาในขณะที่ XmlDocument เหมาะสำหรับวัตถุประสงค์อื่นนอกเหนือจากการอ่านไฟล์ขนาดใหญ่มาก

อ้างอิง

ความแตกต่างระหว่าง XmlDocument และ XPathDocument (พร้อมตาราง)