PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

อยากให้ช่วยแนะนำการดึง Attribute จากอเมซอนด้วยครับ...

อยากให้ช่วยแนะนำการดึง Attribute จากอเมซอนด้วยครับ...

ผมกำลังศึกษาการฟีดสินค้าจาก amazon ผมได้โค้ด xml แบบนี้มา โหลดที่ http://share.aewhasisaket.com/sample.xml ครับ (ก้อบไฟล์ตัวอย่างมาให้) ที่ส่วนที่เป็น <ItemAttributes> ของสินค้าแต่ละตัวจะแตกต่างกันตามหมวด อิเล็กทรอนิก เสื้อผ้า ก็จะมี Attribute คนละแบบ เราจะทำยังไงดีครับให้สคริปรู้ชื่อAtribute นั้นเองและแสดงออกมาแบบอัติโนมัติครับ  อยากให้อาจารย์ช่วยชี้แนะด้วยครับ ขอบคุณมากครับ 

 

 

ที่ต้องการดึงออกมา

BatteriesIncluded -> 1

Binding -> Electronics

Brand -> Samsung



โดย:  Malagor IP: 110.164.234.xxx วันที่: 08-05-2010 เวลา: 10:54:59

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 7

ขอบคุณมากครับ อาจารย์เข้าใจถูกต้องและตอบได้ตามที่อยากถามเลยครับ ความรู้ผมยังไม่กระจ่างเรื่อง xml เท่าไหร่ ต้องศึกษาอีกเยอะครับ สำหรับ php ผมจะ parse ออกมาแล้วก็วนลูบด้วย for each ครับ (อันนี้ก็ดัดแปลงของต้นฉบับเขามา) ก็ทำได้ระดับหนึ่งครับ อยากให้อาจารย์ช่วยแนะนำหน่อยครับ ว่าถ้าผมจะศึกษาเกี่ยวกับ xml เพิ่ม ควรศึกษาเพิ่มเติมจากที่ไหนดีครับ  ขอบคุณมากครับ

ปล. ผมตั้งใจจะทำ Affliate กับ amazon.com ครับ ปกติมีสคริปที่เขาดึงข้อมูลสินค้าจากอเมซอนได้ (แต่เสียเงิน) ผมเลยอยากจะทำเวบเองครับ

 



โดย:  Malagor IP: 110.164.234.xxx วันที่: 11-05-2010 เวลา: 22:50:20
 ความคิดเห็นที่ 6

ตัวโปรแกรมที่ให้ น่าจะครอบคลุมแล้ว ต้องดูว่าเราต้องการแสดงผลยังไงมากกว่า

ถ้าหมวด electronic มี BatteriesIncluded
 

echo $arrXml['Items']['Item'][0]['ItemAttributes']['BatteriesIncluded']; 

แต่ถ้าเป็นหมวด เสื้อผ้า มี color 

echo $arrXml['Items']['Item'][0]['ItemAttributes']['color']; 

ขึ้นอยู่กับไฟล์ xml นั้น

ถ้าสินค้าตัวอื่นมันจะมี ItemAttributes แตกต่างกัน ก็ให้ใช้ตาม ItemAttributes ของหมวดนั้นๆ

พอไปอ่านที่คำถามแรก เจอคำถามที่ว่า "เราจะทำยังไงดีครับให้สคริปรู้ชื่อAtribute นั้นเองและแสดงออกมาแบบอัติโนมัติครับ" สามารถรู้ชื่อ หรือนำค่ามาแสดง

foreach($arrXml['Items']['Item'][0]['ItemAttributes'] as $key=>$value){
	echo $key."->".$value;
	echo "<br />";
}

จากโค้ดด้านบน สามารถหา Atribute และ ค่าของมัน ตัวแปร $key จะเก็บ attribute  และ $value เก็บค่า

ไม่รู้ว่าเข้าใจหรือป่าว แต่รู้สึกว่าสิ่งที่กำลังทำ ดูค่อนข้างซับซ้อน และยาก



โดย:  Ninenik IP: 124.122.68.xxx วันที่: 09-05-2010
 ความคิดเห็นที่ 5

ครับ ผมอาจจะสื่อสารไม่ดี แต่พยายามจะถามอาจารย์ว่า ในโค้ด

echo $arrXml['Items']['Item'][0]['ItemAttributes']['BatteriesIncluded']; 

ในสินค้าตัวอื่นมันจะมี ItemAttributes แตกต่างกันออกไปครับ เช่น หมวดอิเล้กทรอนิกในแทกนี้จะเป็น BatteriesIncluded ถ้าเป็นหมวดเสื้อผ้ามันจะไม่มี BatteriesIncluded แต่เป็น color หรือ เพศของผู้ใส่แทน หรือ ถ้าเป็นสินค้าพวกหนังสือ ในแทก ItemAttributes นี้อาจจะเป็น ชื่อผู้แต่ง ถ้าเป็นหมวดของเล่น ItemAttributes ก็จะมีอายุผู้เล่นแทน ซึ่งสินค้าคนละหมวดมันจะมี ItemAttributes คนละชนิดกัน เลยอยากทราบว่าจะเขียนโปรแกรมยังไงดีครับ ให้ครอบคลุมทั้งหมด (คงเข้าใจคำถามนะครับ)

ขอบคุณมากครับที่กรุณามาตอบคำถาม หวังว่าคงมีประโยชน์กับคนอื่น ๆ ด้วยนะครับ



โดย:  Malagor IP: 110.164.234.xxx วันที่: 09-05-2010 เวลา: 15:28:18
 ความคิดเห็นที่ 4

ไม่ค่อยเข้าใจคำถามที่ถามเพิ่ม

แต่ให้เข้าใจว่าตัวแปร array จะถูกสร้างตามเงื่อนไขของโครงสร้าง xml นั้นๆ อย่างเช่น

echo $arrXml['Items']['Item'][0]['ItemAttributes']['BatteriesIncluded'];  

คือการเอาค่าของ BatteriesIncluded ที่อยู่ใน ItemAttributes ที่อยู่ใน Item[0] คือ Item ตัวแรก และที่อยู่ใน Items มาแสดง

ดังนั้น ค่า BatteriesIncluded , ItemAttributes ... สามารถเป็นอะไรก็ได้ ตามที่ต้องการ และตรงตามโครงสร้างของ xml นั้น



โดย:  Ninenik IP: 124.121.246.xxx วันที่: 09-05-2010
 ความคิดเห็นที่ 3

ขอบคุณมากครับอาจารย์ แต่ว่าแทกภายใน <ItemAtributes> <x>... </x> <y>... </y> </ItemAttrubutes> เนี่ยครับเป็นปัญหาครับ เพราะว่าสินค้าแต่ละตัวจะเป็นคนละแบบครับเช่น หมวด electronic จะมี BatteriesIncluded, CPU, Hardisk แต่หมวดเสื้อผ้าไม่มีจะมีพวกสำหรับ Men, Women อะไรแบบนี้ครับ ซึ่งถ้าเราต้องการให้ดึงออกมาโดยไม่ต้องกำหนด BatteriesIncluded ล่วงหน้า (โดยให้เป็นอะไรก็ได้ที่ xml ให้เรามา) จะได้มั๊ยครับ

echo $arrXml['Items']['Item'][0]['ItemAttributes']['BatteriesIncluded'];    <-- ไม่ต้องกำหนดก่อนได้มั๊ยครับ

ขอบคุณล่วงหน้าครับ



โดย:  Malagor IP: 110.164.234.xxx วันที่: 08-05-2010 เวลา: 23:27:25
 ความคิดเห็นที่ 2

ตามบทความด้านล่าง สามารถนำไปใช้กับ xml ไฟล์ต่างๆ รวมทั้งไฟล์ xml ประเภท rss ได้

http://www.ninenik.com/ดึงค่า_ข้อมูล_จาก_xml_ไฟล์_มากำหนดเป็นตัวแปร_array_ด้วย_php-281.html

 



โดย:  Ninenik IP: 124.122.65.xxx วันที่: 08-05-2010
 ความคิดเห็นที่ 1

ปล. อยากให้แนะนำด้วย PHP ครับ



โดย:  Malagor IP: 110.164.234.xxx วันที่: 08-05-2010 เวลา: 10:56:06