2011-12-29 3 views
0

XML 파일은 아래에서 볼 수있다 : I 제품 및 제공 데이터가 순서대로 표시됩니다 그래서 코딩 수있는 방법SimpleXML을 XPath는

#

.

foreach ($xml->GeneralSearchResponse->categories->category->items->xpath('/product | /offer') as $product) 
{ 

    print $product->name; 
} 

이 그러나 모든 데이터를 표시하지 않습니다

현재 나는 다음 코드를 시도했습니다.

감사합니다,

잭 XML이 제공하는 링크가 가리키는

+0

어떤 순서입니까? 그리고 어떤 XML 요소 (들)가 제품을 대표하고 어떤 제안을 제시합니까? - 그리고 지금까지 무엇을 시도 했습니까? 코드를 추가하고 xpath의 어느 부분에 문제가 있는지 보여주십시오. – hakre

+0

안녕 도 모든 순서가 될 수 있습니다. – JackTheJack

+0

나는 시도했다 : foreach는 ($ XML-> GeneralSearchResponse-> 범주 -> 범주 -> 항목 -> XPath는 ('/ 제품 |/제공') $ 제품 등) { \t 인쇄 $의 제품 -> 이름 ; } – JackTheJack

답변

1

을 잘 형성되지 않는다. 대부분 XML 파싱 오류가 발생합니다.

구체적으로는 &somename=&somename=으로 변경해야합니다.

또한 심각하고 불법적 인 구문 문제가있는 것으로 보입니다.

+0

예, 방금 각 문에 대한 데이터가 없습니다. – JackTheJack

+0

@ JackTheJack : 따라서 XPath에는 문제가 전혀 없습니다. 시작하려면 올바른 형식의 XML 문서를 갖도록 데이터를 수정하십시오. –

+1

또한 foreach와 전체 문서 전에 xpath *를 수행하는 방법을 알아야 할 가치가 있다고 생각합니다. 그렇게하면 노드의 목록을 가져 오는 xpath 표현식과 노드를 반복하는 foreach 표현식이 더 명확합니다. 디버깅이 쉬워집니다. – hakre