원래 XML 형식의 객체 배열에 객체를 삽입하는 PHP 스크립트를 작성하려고합니다. 지정된 인덱스에 개체를 삽입 한 다음 업데이트 된 개체로 데이터를 가져온 XML 파일을 다시 써야합니다. 여기에 내가 bar_id = 0의 ID와 바에서 일하는 바텐더가있는 경우객체 배열에 객체 삽입 PHP
즉 그래서<?xml version="1.0" encoding="UTF-8"?>
<Bars>
<Bar>
<BarName>Kam's</BarName>
<bar_id>0</bar_id>
<Bartenders>
<Bartender>
<fname>Max</fname>
<lname>Vest</lname>
<imageURL>http://uofi-bars.com/bartenderImages/maxvest.jpg</imageURL>
<shift>2</shift>
</Bartender>
</Bartenders>
<Events>
<Event>
<EventName>Kams event</EventName>
<date>08/10/1989</date>
</Event>
</Events>
<Specials>
<Special>Kam's Special 1</Special>
<Special>Kam's Special 2</Special>
</Specials>
</Bar>
가, 내가의 배열로 그 바텐더를 삽입 할 수 있어야 내 XML의 구조는 그 바에 대한 바텐더.
내가 XML에서 배열을 만들려면 다음 PHP 코드를 사용 : 난 그냥 객체의 배열 내의 객체의 배열을 참조하는 방법을 모르는 것 같아요
function objectsIntoArray($arrObjData, $arrSkipIndices = array())
{
$arrData = array();
// if input is object, convert into array
if (is_object($arrObjData)) {
$arrObjData = get_object_vars($arrObjData);
}
if (is_array($arrObjData)) {
foreach ($arrObjData as $index => $value) {
if (is_object($value) || is_array($value)) {
$value = objectsIntoArray($value, $arrSkipIndices); // recursive call
}
if (in_array($index, $arrSkipIndices)) {
continue;
}
$arrData[$index] = $value;
}
}
return $arrData;
}
$xmlUrl = "Bars.xml"; // XML
$xmlStr = file_get_contents($xmlUrl);
$xmlObj = simplexml_load_string($xmlStr);
$arrXml = objectsIntoArray($xmlObj);
print_r($arrXml);
을 ... 어떤 도움 대단히 감사하겠습니다!
감사합니다.
XML 파일을 삭제하고 항목을 삽입 할 수있는 테이블로 사용하려고 시도하고 있습니까? –
정확히 이것을 수행하는 더 쉬운 방법은 무엇입니까? – thebiglebowski11
xpath에 대한 자세한 내용은 여기 http://www.w3schools.com/php/func_simplexml_xpath.asp 및 http://code.huypv.net/2009/07/simplexml-xpath-php.html –