วิธีเปรียบเทียบไฟล์ XML สองไฟล์
- วางหรือลาก XML ต้นฉบับไว้ทางซ้าย และ XML ที่แก้ไขแล้วไว้ทางขวา ผลลัพธ์จะอัปเดตทันทีขณะพิมพ์
- เลือกสิ่งที่ไม่ต้องการนำมาเปรียบเทียบ: ช่องว่างในข้อความ คอมเมนต์ หรือลำดับแอตทริบิวต์ ตัวเลือก ซ่อนบรรทัดที่ไม่เปลี่ยนแปลง ช่วยให้เอกสารยาว ๆ ดูกระชับขึ้น
- อ่านสรุปจำนวนบรรทัดที่เพิ่ม ลบ และแก้ไข แล้วไล่ดูในมุมมองแบบเคียงข้าง ปุ่ม สลับด้าน จะกลับทิศทางการเปรียบเทียบ
การเปรียบเทียบ XML ละเว้นอะไรบ้าง
| ความแตกต่าง | ละเว้นหรือไม่ |
|---|---|
| การเยื้องและการขึ้นบรรทัดใหม่ระหว่างอิลิเมนต์ | ละเว้นเสมอ |
| เครื่องหมายคำพูดเดี่ยวหรือคู่รอบค่าแอตทริบิวต์ | ละเว้นเสมอ |
<a/> หรือ <a></a> | ละเว้นเสมอ |
| ช่องว่างและการขึ้นบรรทัดส่วนเกินภายในข้อความ | เมื่อเปิด ไม่สนใจช่องว่างในข้อความ (เปิดไว้เป็นค่าเริ่มต้น) |
| คอมเมนต์ | เมื่อเปิด ไม่สนใจคอมเมนต์ |
| ลำดับของแอตทริบิวต์ | เมื่อเปิด ไม่สนใจลำดับแอตทริบิวต์ (เปิดไว้เป็นค่าเริ่มต้น) |
| ลำดับของอิลิเมนต์ | ไม่ละเว้น – อิลิเมนต์ที่ถูกย้ายจะแสดงเป็นถูกลบและถูกเพิ่ม |
prefix ของ namespace, & หรือ &, CDATA หรือข้อความที่ escape | ไม่ละเว้น – เปรียบเทียบตามที่เขียนไว้จริง |
การเปรียบเทียบทำงานอย่างไร
เอกสารทั้งสองจะถูก parse แล้วปรับให้เป็นมาตรฐาน (normalize) ตามตัวเลือกที่เลือกไว้ และเขียนออกมาด้วยการเยื้อง 2 ช่องว่างแบบเดียวกัน จากนั้นบรรทัดที่ได้จะถูกเปรียบเทียบด้วยอัลกอริทึม Myers diff ซึ่งเป็นวิธีที่ git diff ใช้เป็นค่าเริ่มต้น บรรทัดที่ถูกแทนที่จะถูกจับคู่เป็นบรรทัดที่แก้ไข และช่วงยาว ๆ ของบรรทัดที่ไม่เปลี่ยนแปลงสามารถพับเก็บได้ เนื่องจากผลลัพธ์อ้างอิงจากเวอร์ชันที่จัดรูปแบบแล้ว ตำแหน่งบรรทัดจึงอาจไม่ตรงกับไฟล์ต้นฉบับของคุณ
คำถามที่พบบ่อย
ลำดับของอิลิเมนต์มีผลหรือไม่?
มีผล อิลิเมนต์ใน XML มีลำดับ ดังนั้นอิลิเมนต์ที่ถูกย้ายจะแสดงเป็นถูกลบในตำแหน่งหนึ่งและถูกเพิ่มในอีกตำแหน่งหนึ่ง มีเพียงลำดับของแอตทริบิวต์เท่านั้นที่ละเว้นได้ เพราะใน XML ลำดับของแอตทริบิวต์ไม่มีความหมาย
ทำไมไฟล์สองไฟล์ที่ดูเหมือนกันถึงแสดงว่าแตกต่างกัน?
ตรวจดูตัวเลือก: คอมเมนต์ ลำดับแอตทริบิวต์ และช่องว่างภายในข้อความจะนับเป็นความแตกต่างเมื่อปิดตัวเลือกที่เกี่ยวข้องไว้ นอกจากนี้ prefix ของ namespace และรูปแบบการเขียน entity เช่น & และ & จะถูกเปรียบเทียบตามที่เขียนไว้ทุกตัวอักษร
เปรียบเทียบ XML ที่ไม่ well-formed ได้หรือไม่?
ไม่ได้ เอกสารทั้งสองต้องถูก parse ก่อน หากเอกสารใดมีข้อผิดพลาด จะแสดงไว้ใต้ฝั่งนั้นพร้อมบรรทัดและคอลัมน์ – แก้ไขได้ที่นั่นเลยหรือใช้เครื่องมือตรวจสอบ XML
ข้อมูลของฉันถูกอัปโหลดหรือไม่?
ไม่ การเปรียบเทียบทำงานในเบราว์เซอร์ของคุณ และไม่มีข้อมูลใดถูกส่งไปยังเซิร์ฟเวอร์