php DOM, รับค่าจากเอกสาร xml, php xml

ฉันกำลังพยายามรับข้อมูล (itemID, title, price และ mileage) สำหรับรายการหลายรายการจากเว็บไซต์ eBay โดยใช้ API ของพวกเขา จนถึงตอนนี้ ฉันได้รับ สิ่งนี้ ขึ้นไป

ฉันได้บันทึกเอกสารเป็นไฟล์ .xml โดยใช้ PHP cUrl และตอนนี้ฉันต้องรับ/แยกค่า (itemID, title, price และ mileage) ลงในอาร์เรย์และจัดเก็บไว้ในฐานข้อมูล

น่าเสียดายที่ฉันไม่เคยทำงานกับ PHP DOM เลย และฉันก็ไม่รู้ว่าจะแยกค่าออกมาได้อย่างไร ฉันพยายามติดตาม บทช่วยสอนที่พบในเว็บไซต์ IBM แต่ฉันไม่ประสบความสำเร็จ . ความช่วยเหลือบางอย่างจะได้รับการชื่นชมอย่างมาก


person Michael    schedule 17.06.2010    source แหล่งที่มา
comment
simplexml เป็นวิธีที่ง่ายที่สุดในการแยกข้อมูล XML ใน PHP: php.net/simplexml_load_file   -  person Pekka    schedule 17.06.2010
comment
‹pre› $doc = DOMDocument ใหม่(); $doc->load( 'api.xml' ); $items = $doc->getElementsByTagName(GetMultipleItemsResponse); foreach( $GetMultipleItemsResponse เป็น $Item ) { $itemID = $Item->getElementsByTagName( ItemID ); $itemID = $Item->item(0)->nodeValue; } สะท้อน $itemID; ‹/ก่อน›   -  person Michael    schedule 17.06.2010
comment
นั่นควรเป็นคำตอบแทนที่จะเป็นความคิดเห็น   -  person Sjoerd    schedule 17.06.2010


คำตอบ (1)


นี่คือตัวอย่างโค้ดเพื่อรับ ItemID จากไฟล์ XML ของคุณ:

<?php
$doc = new DomDocument();
$doc->load('a.xml');
$response = $doc->getElementsByTagName('GetMultipleItemsResponse')->item(0);
$items = $doc->getElementsByTagName('Item');
foreach ($items as $item)
{
    $itemID = $item->getElementsByTagName('ItemID')->item(0)->nodeValue;
    echo $itemID."\n";
}
?>
  • $doc->getElementsByTagName() ส่งคืน DomNodeList สามารถใช้ใน foreach loop และมีเมธอด item()
  • DomNodeList จะมีองค์ประกอบที่ตรงกันทั้งหมด หากคุณรู้ว่ามีเพียงองค์ประกอบเดียว คุณสามารถดึงข้อมูลนั้นได้ด้วย ->item(0)
  • เมธอด item() ส่งคืน DomElement ซึ่งสืบทอดมาจาก DomNode DomNode มีคุณสมบัติ nodeValue ซึ่งมีข้อความภายในองค์ประกอบ

สรุป: ใช้ SimpleXML

person Sjoerd    schedule 17.06.2010