หาก
Package | Top Level |
Class | public final dynamic class XML |
Inheritance |
XML → Object |
จากข้อมูลข้างต้นจะ
การสร้างข้อมูล XML
var yourVar:XML;
วิธีการสร้างข้อมูล
public function XML(expression:Object):XML
สำ
var yourVar:XML = XML("<a><B>b1</B><B>b2</B></a>");
นอกจากผ่าน
<a>
<B>b1</B>
<B>b2</B>
</a>
ที่ทำ
var yourText2:String = "b2";
var youVar:XML =
<a>
<B>{yourText1}</B>
<B>{yourText2}</B>
</a>
ผลที่
การใช้งาน XML
var order1:XML =
<order no="35">
<book ISBN="0942407296">
<title>Baking Extravagant Pastries with Kumquats</title>
<author>
<lastName>Contino</lastName>
<firstName>Chuck</firstName>
</author>
<pageCount>238</pageCount>
</book>
<book ISBN="0865436401">
<title>Emu Care and Breeding</title>
<editor>
<lastName>Case</lastName>
<firstName>Justin</firstName>
</editor>
<pageCount>115</pageCount>
</book>
</order>
จากส่วนของ
การอ่านและอ้างถึงข้อมูลใน XML
- ต้องการ
เข้าถึง root node หรือ แท็ก <order> ให้อ้างจากชื่อตัว แปร order1 เลย - การ
เข้าถึง child node ให้ ใช้ เครื่องหมายจุด . คั่น แต่ละ node เช่น order1.book[0] จะ ได้ชี้ ไปที่ข้อมูลหนังสืออัน แรก ในกรณีที่ <book> มี เพียง node เดียว สามารถ เขียน เป็น order1.book ไ้ด้ เลย - การ
เข้าถึง child node แบบ ไม่สน ใจ โครงสร้าง ให้ ใช้ เครื่องหมายจุด 2 จุด .. เช่น order1..title ผลที่ ได้คือ <title> จำ นวน 2 node ทั้งหมดที่อยู่ ใน <order>
- child nodes
ทั้งหมด สามารถ ใช้ .* เช่น order1.* จะ ได้ <book> ทั้ง 2 node ( order1.* == order1.children() )
- การอ้างถึง
แอตตริบิวต์ ใช้ เครื่องหมาย @ เช่น order1.book[0].@ISBN จะ ได้ค่า 0942407296 ถ้าต้องการค่า แอตตริบิวต์ จาก root node เช่น order1.@no จะ ได้ค่า 35 - การอ่านค่า
Text ใน แท็ก สามารถระ บุ แท็กที่ต้องการ ได้ เลย เช่น order1.book[1].title[0] หรือ order1.book[1].title จะ ได้ค่า Emu Care and Breeding
การแก้ไขหรือกำหนดค่าใน XML
ใช้ เครื่องหมาย = ในการกำ หนดค่า ใหม่ เช่น ต้องการ แก้ ไข ISBN ของหนังสือ เล่ม แรก order1.book[0].@ISBN = "0123456789" - สามารถ
เพิ่ม node ใหม่ เข้า ไป ในข้อมูล เช่น ต้องการ ใส่ราคา เพิ่ม เข้า ไป ในหนังสือ
order1.book[0].price = "$129.99";
order1.book[1].price = "$89.99";
ผลที่ ได้หลังจาก เพิ่ม node ข้อมูล XML จะ มีข้อมูลดังนี้
<order no="35">
<book ISBN="0942407296">
<title>...
<pageCount>238</pageCount>
<price>$129.99</price>
</book>
<book ISBN="0865436401">
<title>...
<pageCount>115</pageCount>
<price>$89.99</price>
</book>
</order>
- สามารถ
เพิ่ม แอตตริบิวต์ ใหม่ เช่น ต้องการ เพิ่ม status ให้กับ <order>
order1.@status = "pending";
ผลที่ ได้หลังจาก เพิ่ม node ข้อมูล XML จะ มีข้อมูลดังนี้
<order no="35" status="pending">
<book ISBN="0942407296">
<title>...
- สามารถนำ
เอาข้อมูล XML อื่น ๆ มา เพิ่มต่อกัน ได้ด้วย เครื่องหมาย += เช่น
order1.book[0].* += <quantity unit="piece">3</quantity>
เป็นการ เพิ่มข้อมูล XML ต่อท้าย node สุดท้าย ใน child node ของ book[0] ผลที่ ได้หลังจาก เพิ่มข้อมูลต่อ ใน XML
<order no="35">
<book ISBN="0942407296">
<title>...
<pageCount>238</pageCount>
<quantity unit="piece">3</quantity>
</book>
<book ISBN="0865436401">
หากต้องการ เพิ่มข้อมูลหนังสือ เข้า ไป โดย ให้ต่อท้าย book[0]
order1.book[0] += <book ISBN="0123456789">
<title>Flex for Dummy</title>
<editor>
<lastName>Good</lastName>
<firstName>Guy</firstName>
</editor>
<pageCount>230</pageCount>
</book>
ผลที่ ISBN="0123456789">ได้คือ <book ที่ <book ISBN="0942407296">เพิ่ม เข้า ไปต่อ ไปอยู่ระ หว่าง และ <book ISBN="0865436401">
การลบข้อมูลใน XML
หากต้องการลบ
ผลที่
<order no="35">
<book>
<title>...
หากต้องการลบหนังสือ
ผลที่
<book ISBN="0865436401">
<title>Emu Care and Breeding</title>
<editor>
<lastName>Case</lastName>
<firstName>Justin</firstName>
</editor>
<pageCount>115</pageCount>
</book>
</order>
การใช้ for..in และ for each..in ท่องไปใน XML (Traversing XML)
for..in
สำ
{
trace("name:", pname);
trace("ISBN: ", order1.book[pname].@ISBN);
}
ผลที่
ISBN: 0942407296
name: 1
ISBN: 0123456789
for..each
สำ
{
trace("ISBN: ", node.@ISBN);
trace("Title: ", node.title);
}
ผลที่
Title: Baking Extravagant Pastries with Kumquats
ISBN: 0865436401
Title: Emu Care and Breeding
ส่งท้าย
รูป
จากวิธีการ
สำ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น