2013-02-05 4 views
-1

PHP와 XML에 문제가 있습니다. 데이터베이스에 가져 오려는 XML 데이터 피드가 있습니다. 대부분의 값은 정상적으로 작동하지만 속성이 작동하지 않습니다.PHP에서 XML 속성 읽기

$brand = $allData[$key]->property->brand->value;으로 '브랜드'속성을 선택하려고했지만 작동하지 않습니다.

이것은 data.xml을 읽는 PHP입니다. 코드가 나온 후에 XML이 나온다.

$xml = simplexml_load_file("data.xml"); 
foreach($xml->children() as $child) 
{ 
$allData[] = $child; 
} 


foreach($allData as $key=>$value) 
{ 
$naam = $allData[$key]->name; 
$image = $allData[$key]->images->image; 

} 

--- XML ​​코드의 일부 ----

<images> 
<image>afbeelding.jpg</image> 
</images> 
<description>beschrijving</description> 
<categories> 
<category path="categorie"> Categorie </category> 
</categories> 

<properties> 
<property name="brand"> 
<value>Merk</value> 
</property> 

내가 설명 및 이미지 태그를 아주 쉽게 얻을 수 있습니다. 그러나 브랜드는 효과가 없습니다.

$brand = $allData[$key]->property->brand->value;

나를 도울 수있는 사람이 있습니까?

+1

XML이 배열처럼 작동하도록하는 대신 http://www.php.net/manual/en/class.simplexmlelement.php SimpleXMLElement 인터페이스에서 읽으십시오. attributes 속성을 사용하여 필요한 것을 얻을 수 있습니다. – Jerry

답변

0

왜 배열로 강제로 무엇을 반복하는지 이해할 수 없습니다. 귀하의 질문에 짧은 대답은 : $ brandProperty = (string) $ allData [$ key] -> property-> attributes() -> name;

훨씬 더 좋습니다. Jerry의 조언과 RTM을 따르십시오. 훌륭한 설명서를 읽으십시오. 수동 및 사용자 공헌 노트에는 필요한 정보가 모두 포함되어 있습니다. SimpleXML은 반복 자체를 구현하므로 문서를 실행하려면 foreach ($xml->children() as $node)과 같은 것을 사용하는 것이 더 쉽습니다.

희망이 있습니다.