我有一個數組,需要拆分參數。到目前爲止,我曾嘗試:如何在PHP數組中分離HTML/XML標籤?
$test = array
(
'username' => 'vale',
'apiaccesskey' => 'myapi',
'action' => 'placeimeiorder',
'requestformat' => 'JSON',
'parameters' => '<PARAMETERS><CUSTOMFIELD>bnVsbA==</CUSTOMFIELD><ID>221</ID><IMEI>354443063506889</IMEI><MODELID></MODELID><PROVIDERID></PROVIDERID><NETWORK></NETWORK><PIN></PIN><KBH></KBH><MEP></MEP><PRD></PRD><TYPE></TYPE><LOCKS></LOCKS><REFERENCE></REFERENCE><SN></SN><SECRO></SECRO></PARAMETERS>',
'version' => '2.3.1'
);
$html = $test['parameters'];
$doc = new DOMDocument();
$doc->loadHTML($html);
$tags = $doc->getElementsByTagName('PARAMETERS');
echo 'ID '.$tags->item(0)->getAttribute('ID').'" IMEI="'.$tags->item(0)->getAttribute('IMEI').'"/>';
作爲回報,我得到致命錯誤與此代碼,但它SeeME所它recognizong和分離標籤值,這就是希望。下面是錯誤日誌:
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag id invalid in Entity, line: 1 in /test.php on line 24
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag imei invalid in Entity, line: 1 in /test.php on line 24
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag modelid invalid in Entity, line: 1 in /test.php on line 24
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag providerid invalid in Entity, line: 1 in /test.php on line 24
....
我想在陣列輸出:
'CUSTOMFIELD' = 'bnVsbA==',
'ID' = '221',
'IMEI' = '354443063506889',
'MODELID' = '',
'PROVIDERID' = '',
'NETWORK' = '',
..so on..
所以我可以用echo $test['IMEI'];
,它會輸出:
我該如何解決這個錯誤,並得到在$test['parameters']
分離的所有標籤?
謝謝你的幫助。
你可以發佈你想要的輸出嗎? –
'loadHTML()'是用於HTML的。由於您的輸入是XML,請使用'loadXML()'代替。 – Ultimater
@DishaV。更新我的問題。 – Cyborg