ตอนแรกกะว่าจะเขียนวันเดียวกับเรื่อง Tree แต่ด้วยความขี้เกียจบวกกับเมื่อวานกะทำงานหลายๆ อย่างให้เสร็จเลยไม่ได้เขียน ยกยอดมาเขียนวันนี้แทน เรื่องนี้เป็นเรื่องที่สองที่ได้จากการทำ FeedReader แล้วทำให้รู้ว่า Flex มันไม่สามารถหาวิธีทำได้จากคู่มือที่มีให้ในเว็บ Adobe ต้องใช้ความสามารถในการใส่ keyword ให้ google เข้าช่วยอย่างมาก
เรื่อง ของเรื่องก็คือ xml ที่ Google ส่งมาใน Google Reader มีการใช้ namespace อยู่สามตัวในการแบ่ง tag ต่างๆคราวนี้พอได้รับข้อมูลมาแล้วจะเอามาอ่านใส่ตัวแปรโดยไม่มีการกำหนด namespace ให้มันปรากฏว่า Flex มันก็จะอ่านข้อมูลตัวนั้นออกมาเป็นตัวแปรแบบปกติไม่ได้เช่น
Google Reader
tag:google.com,2005:reader/user/10757961596074723521/state/com.google/reading-list
CLv69f7_nZUC
แนท
2008-08-21T08:07:03Z
tag:google.com,2005:reader/item/8c96bd9a8e5c1cb5
....
ขี้เกียจเอามาหมดยาว จะเห็นว่าแท๊กพิเศษอยู่เช่น gr:…. แต่อย่างไรก็ตามด้านบนมันก็ได้กำหนดไว้แล้วว่าอะไรคือ namespace default (xmlns ที่ไม่มี : บอกว่าใช้ namespace อะไรนำหน้านั่นแหละ) แต่ Flex มันดั้นไม่ฉลาดพอที่จะเลือกมาให้เอง สุดท้ายก็เลยต้องกำหนดให้มันหน่อยเป็น
default xml namespace = new Namespace('http://www.w3.org/2005/Atom')
//...flex code...
default xml namespace = null
โดยก่อนออกฟังก์ชั่นต้องเปลี่ยนกลับให้มันเป็น null ด้วยไม่งั้นอาจเจอ Error ที่คาดไม่ถึงได้ (จำไม่ได้แล้วว่า Error ไรขี้เกียจทำให้มันขึ้นมาซะด้วยสิ)
อืมหลังจากทำ FeedReader มาถึงตรงนี้ก็เริ่มคิดว่า ทำต่อไปเรื่อยๆ จะเจออะไรพิศดารอีกไหม(ซึ่งคาดว่าต้องเจออีกแน่นอน) อย่าง namespace ก็ไม่เคยคิดว่าจะต้องตั้งให้มันอย่างนี้ ตอนแรกนึกว่าจะใส่ให้กับตัวแปรที่เป็นตัวเก็บข้อมูล xml ธรรมดาๆ ซะอีก ไม่เป็นไร เดี๊ยวลองเล่นกับ sqlite ก็ได้รู้กัน