วิธีการ 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 ของคุณ วิธีการคือ:
- เปิดตัวแก้ไข VBA ของคุณ (กด
ALT + F11
). - คลิกที่
Tools
>References
. - มองหา
Microsoft XML, v6.0
และทำเครื่องหมายในช่องถัดไป. - คลิก
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)
สรุปขั้นตอน
- ตั้งค่าอ้างอิงถึง MSXML2.
- โหลดสตริง XML ของคุณลงใน DOMDocument.
- ใช้
selectSingleNode
เพื่อรับค่าของX
และY
. - แปลงค่าเป็นจำนวนเต็มหากจำเป็น.
สรุป
การแยก XML ใน VBA อาจดูซับซ้อนในตอนแรก แต่ด้วยวัตถุ MSXML2.DOMDocument
มันจะกลายเป็นงานที่ง่ายขึ้นมาก โดยการทำตามขั้นตอนเหล่านี้ คุณสามารถดึงค่าจากโครงสร้าง XML ได้อย่างง่ายดายและนำไปใช้ในงานของคุณ
สำหรับการอ่านเพิ่มเติมและการสำรวจ ลองเยี่ยมชมแหล่งข้อมูลต่อไปนี้:
ด้วยคำแนะนำนี้ คุณจะมีความพร้อมในการรับมือกับการแยก XML ในโครงการ VBA ของคุณ ขอให้คุณโค้ดสนุก!