다음 테스트 함수는 PHP의 xmlreader를 사용하여 XML 파일을 읽고 3 개의 값 ("id"= key)의 2 차원 배열을 반환합니다.PHP xmlreader to array
사용자 이름 키와 값이 배열에 반환되도록 코드를 편집 할 수 있습니까? 어떻게 당신은 또한 이름의 키와 값을받을 수 있나요이 배열
Array
(
[0] => Array
(
[id] => 345
)
[1] => Array
(
[id] => 123
)
[2] => Array
(
[id] => 789
)
)
반환)
ini_set('always_populate_raw_post_data', 'on');
function test()
{
$request = $HTTP_RAW_POST_DATA;
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$url = "http://site.xml";
$reader = new XMLReader();
$reader->open($url);;
$var = array();
$i = 0;
$limit = 3;
while ($reader->read())
{
if ($reader->name == "id" && $reader->nodeType == XMLReader::ELEMENT)
{
if ($i == $limit) break;
while ($reader->read())
{
if ($reader->nodeType == XMLReader::TEXT
|| $reader->nodeType == XMLReader::CDATA
|| $reader->nodeType == XMLReader::WHITESPACE
|| $reader->nodeType == XMLReader::SIGNIFICANT_WHITESPACE)
{
$var[$i]["id"] = $reader->value;
}
else if ($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == "id")
{
break;
}
}
$i++;
}
}
$reader->close();
echo '<pre>';
print_r($var);
echo '</pre>';
}
시험 ((끝 부분에 표시)?
Array
(
[0] => Array
(
[id] => 345
[username] => name1
)
[1] => Array
(
[id] => 123
[username] => name2
)
[2] => Array
(
[id] => 789
[username] => name3
)
)
는 또한 지금 당신은 단지 ID를 읽고
$reader->name == "username"
확인 판독기가 필요 호세의 대답
// needed to end element
else if ($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == "username")
{
break;
}
코드가있는 그대로 작동하지 않습니다. – rrrfusco