2014-02-26 3 views
0

나는 simplexml을 통해 다음 xml 데이터의 드롭 다운 목록을 추출하는 방법을 알아 내려고합니다. simplexml을 통해 xml을 구문 분석

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<reference:reference xmlns:resource="http://services.mobile.de/schema/resource" xmlns:ad="http://services.mobile.de/schema/ad" xmlns:seller="http://services.mobile.de/schema/seller" xmlns:financing="http://services.mobile.de/schema/common/financing-1.0" xmlns:reference="http://services.mobile.de/schema/reference"> 
<reference:item key="ABARTH" url="http://services.mobile.de/1.0.0/refdata/classes/Car/makes/ABARTH"> 
    <resource:local-description xml-lang="en">Abarth</resource:local-description> 
</reference:item> 
<reference:item key="AC" url="http://services.mobile.de/1.0.0/refdata/classes/Car/makes/AC"> 
    <resource:local-description xml-lang="en">AC</resource:local-description> 
</reference:item> 

나는이 같은 HTML이 필요합니다 내가 시도

<select> 
<option value=„reference:item->key“>resource:local-description</option> 
</select> 

모든 치명적인 PHP 오류에 끝납니다. 내 제안은 - in - local-description이 코드가 올바르게 실행되지 못하도록한다는 것입니다.

전. 이자형. 이 코드 :

$properties = $content->children('reference', TRUE)->item->children('resource', TRUE); 
echo $properties->local-description; 

나를위한 힌트가 있습니까?

+0

이 완료 XML을 제공하십시오 –

답변

1

귀하의 XML 그것을 닫는 </reference:reference> 태그가 없습니다, 유효하지 않습니다. 수행 출력을 생성하기 위해 지금

$xml = simplexml_load_string($x); // assume XML in $x 

$keys = $xml->xpath("//reference:item/@key"); 
$descs = $xml->xpath("//resource:local-description"); 

:

사용 xpath는 네임 스페이스 데이터를 선택합니다

$c = count($keys); 
$i = 0; 

for ($i = 0; $i < $c; $i++) 
    echo "key: $keys[$i] - value: $descs[$i]" . PHP_EOL; 

이 작업 방법을 참조하십시오 : https://eval.in/106207

+0

대단히 감사합니다! 이것은 나를 위해 일했다. 닫기 xml 태그는 불행히도 복사 과정에서 없어졌습니다. –

0

아마도 AJAX에서 해당 기능을 수행하는 함수를 호출하여 모든 xml 데이터를 구문 분석해야 할 수 있습니다. 그러면이 함수에서 원하는 데이터가 포함 된 응답을 보내고 JS에 이러한 데이터를 DOM에 추가합니다. 내가 그것을 필요로 할 때

는이 게시물을 발견 : convert xml into array