2017-12-22 23 views
0

PHP의 XML 파일에서 일부 필드를 추출하려고합니다. 이 방법은 대부분의 필드에서 작동하지만 그 중 일부는 오류가 발생하며 이유는 알 수 없습니다.PHP로 XML 파일에서 필드 가져 오기

XML 예제 :

<products> 
    <product> 
    <ns2:name>Some name</ns2:name> 
    <offers> 
     <offer id="123"> 
     <ns2:productUrl>https://www.something.here</ns2:productUrl> 
     <priceHistory> 
      <ns2:price currency="EUR">299.00</ns2:price> 
     </priceHistory> 
     </offer> 
    </offers> 
    </product> 
</products> 
이미 이름있는

: 나는 가격과 ProductUrl 위해 동일을하고 싶어

$name = mysql_real_escape_string($products->product->children('ns2', true)->name); 

을하지만이 작동하지 않습니다

$URL = $products->product->offers->offer->children('ns2',true)->productUrl;  
$price = $products->product->offers->offer->priceHistory->children('ns2', true)->price; 

누군가가 왜 이것이 작동하지 않으며 제품과 가격을 얻을 수있는 지 말해 줄 수 있습니까?

+0

"그다지 효과가 없다"는 것은 무엇을 의미합니까? 이 줄은 올바른 요소를 반환해야합니다. https://eval.in/924453 – iainn

+0

참조 http://php.net/manual/en/domxpath.registernamespace.php 아마도 – RamRaider

+0

첫 번째 오류는주의 사항입니다. 시도 중입니다. 객체가 아닌 객체의 속성을 가져옵니다. 두 번째 오류는 치명적인 오류입니다 : 널 (null)의 멤버 함수 인 children()을 호출하십시오. 둘 모두 $ URL을받는 줄에 있습니다. 스크립트는 두 번째 오류 후에 더 이상 진행되지 않습니다. – MNL

답변

0

알아 냈어. 최상위에 두 자녀가있는 것 같습니다. 데이터가없는 첫 번째 것. 그것이 오류의 원인입니다. null를 받았을뿐만, null의 아이를 취득하고 싶다. 이것은 효과적이지 않았다.