필자는 PHP 코드를 최소한으로 단순화했지만 여전히 단순한 XML 노드 값을 가져올 수 없습니다. 나는 작은 세부 사항을 놓치지 않았 음을 확인하기 위해 문서를 다시 읽었으며 단지 작동시키지 못한다.PHP SimpleXML - 단일 노드 값을 가져올 수 없습니다. 미친 것입니까?
var_dump($xmlStrShipping); // So far, so good
/* Returns:
SimpleXMLElement Object
(
[Orders] => SimpleXMLElement Object
(
[Order] => SimpleXMLElement Object
(
[number] => Order number
[details] => SimpleXMLElement Object
(
)
)
)
)
*/
:
는 우선 난 그냥 객체 SimpleXMLElement
점점 계속, 나는 수 및 세부 사항을 노드의 값을 얻을 수 $xmlStrShipping = simplexml_load_string('<?xml version="1.0" encoding="utf-8" ?>
<Shipping>
<Orders>
<Order>
<number>Order number</number>
<details></details>
</Order>
</Orders>
</Shipping>');
그런 다음이 아주 기본적인 XML을로드
.
var_dump($xmlStrShipping->Orders[0]->Order->number); // Why is this happening?
/* Returns
SimpleXMLElement Object
(
[0] => Order number
)
*/
.
var_dump($xmlStrShipping->Orders[0]->Order->number[0]); // What??
/* Returns
SimpleXMLElement Object
(
)
*/
이유는 수를 검색 할 수 없습니다?
의 세부 정보는입니다. 빈 문자열 대신 SimpleXMLElement 객체입니까?
이 방법은 반환 : 당신이 문자열 컨텍스트에서 호출하는 경우 SimpleXMLElement이 구현 된 마법
가__toString()
방법을 가지고 있기 때문에또는 그것뿐만 아니라 작동합니다 : 그냥 문자열 (또는 무엇이든)에 캐스팅 SimpleXMLElement 객체 cast $ test = (string) $ xmlStrShipping-> Orders [0] -> Order-> number를 사용하십시오. 문자열 값을 얻으려면 –
설명서를 보면 그들은 정확히 내가 사용하는 것처럼 SimpleXMLElement를 반환하지 않고 코드를 이상하게 보이게 만드는 타입 캐스팅을 사용할 필요가 없습니다. http : // php.net/simplexml_load_string – NaturalBornCamper