วิธีการ Parse XML โดยใช้ VBA: คำแนะนำทีละขั้นตอน

การแยก XML อาจดูน่ากลัวในตอนแรก โดยเฉพาะอย่างยิ่งสำหรับผู้ที่ใหม่ต่อโลกของ VBA หากคุณพบว่าตัวเองต้องการเข้าถึงค่าจากโครงสร้าง XML เช่นการดึงพิกัด X และ Y จากจุด คุณมาถูกที่แล้ว! ในโพสต์นี้เราจะสำรวจขั้นตอนการแยก XML ใน VBA เพื่อดึงข้อมูลอย่างมีประสิทธิภาพ

ปัญหา: การดึงค่าของ X และ Y

ลองจินตนาการว่าคุณมีสตริง XML ที่ดูเหมือนดังนี้:

<PointN xsi:type='typens:PointN' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xmlns:xs='http://www.w3.org/2001/XMLSchema'>
    <X>24.365</X>
    <Y>78.63</Y>
</PointN>

คุณต้องการดึงค่าของ X และ Y เพื่อให้คุณสามารถเก็บไว้เป็นตัวแปรประเภทจำนวนเต็มในโค้ด VBA ของคุณ ในฐานะมือใหม่ใน XML และ VBA คำถามคือ: ฉันจะทำอย่างไรถึงจะทำได้?

วิธีการแก้ไข: การใช้ MSXML2.DOMDocument

โชคดีที่มีวิธีการที่ชัดเจนในการแยกข้อมูล XML โดยใช้วัตถุ MSXML2.DOMDocument ใน VBA นี่คือขั้นตอนที่คุณควรปฏิบัติตาม:

ขั้นตอนที่ 1: ตั้งค่าอ้างอิง MSXML2

ก่อนที่คุณจะเริ่มเขียนโค้ด ให้แน่ใจว่าคุณได้อ้างถึงไลบรารี Microsoft XML, v6.0 ในตัวแก้ไข VBA ของคุณ วิธีการคือ:

  1. เปิดตัวแก้ไข VBA ของคุณ (กด ALT + F11).
  2. คลิกที่ Tools > References.
  3. มองหา Microsoft XML, v6.0 และทำเครื่องหมายในช่องถัดไป.
  4. คลิก OK.

ขั้นตอนที่ 2: โหลดสตริง XML

คุณสามารถโหลดสตริง XML ของคุณลงใน DOMDocument ได้ดังนี้:

Dim xmlDoc As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")

xmlDoc.LoadXML "<PointN xsi:type='typens:PointN' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema'><X>24.365</X><Y>78.63</Y></PointN>"

ขั้นตอนที่ 3: เข้าถึงโหนด X และ Y

เมื่อโครงสร้าง XML ถูกโหลดแล้ว คุณสามารถเข้าถึงค่าของ X และ Y ได้อย่างง่ายดายโดยใช้วิธี selectSingleNode:

Dim xValue As Double
Dim yValue As Double

xValue = xmlDoc.SelectSingleNode("//X").Text
yValue = xmlDoc.SelectSingleNode("//Y").Text

ขั้นตอนที่ 4: แปลงเป็นตัวแปรประเภทจำนวนเต็ม

หากจำเป็น คุณสามารถแปลงค่าต่าง ๆ เหล่านี้เป็นจำนวนเต็ม:

Dim xInt As Integer
Dim yInt As Integer

xInt = CInt(xValue)
yInt = CInt(yValue)

สรุปขั้นตอน

  1. ตั้งค่าอ้างอิงถึง MSXML2.
  2. โหลดสตริง XML ของคุณลงใน DOMDocument.
  3. ใช้ selectSingleNode เพื่อรับค่าของ X และ Y.
  4. แปลงค่าเป็นจำนวนเต็มหากจำเป็น.

สรุป

การแยก XML ใน VBA อาจดูซับซ้อนในตอนแรก แต่ด้วยวัตถุ MSXML2.DOMDocument มันจะกลายเป็นงานที่ง่ายขึ้นมาก โดยการทำตามขั้นตอนเหล่านี้ คุณสามารถดึงค่าจากโครงสร้าง XML ได้อย่างง่ายดายและนำไปใช้ในงานของคุณ

สำหรับการอ่านเพิ่มเติมและการสำรวจ ลองเยี่ยมชมแหล่งข้อมูลต่อไปนี้:

ด้วยคำแนะนำนี้ คุณจะมีความพร้อมในการรับมือกับการแยก XML ในโครงการ VBA ของคุณ ขอให้คุณโค้ดสนุก!