web-dev-qa-db-ja.com

PHP SimpleXMLノードから実際の値を取得する

$value = $simpleXmlDoc->SomeNode->InnerNode;

実際には、InnerNodeの実際の値ではなく、simplexmlオブジェクトを$ valueに割り当てます。

私が行った場合:

$value = $simpleXmlDoc->SomeNode->InnerNode . "\n";

値を取得します。とにかく不器用に見えることなく実際の値を取得する. "\n"

35
James

好きなタイプにキャストします(そして意味があります...)。連結することで、暗黙的に文字列にキャストしているので、

$value = (string) $xml->someNode->innerNode;
80
Greg

innerNodeを指定する必要はありません。

$value = (string) $simpleXmlDoc->SomeNode;

19
David

そのようなもののようなタイプキャストを使用するのはどうですか:

$value = (string)$simpleXmlDoc->SomeNode->InnerNode;

参照: type-juggling

または、おそらくstrval()、intval()などを使用できます。関数呼び出しのために、おそらくより低速です。

4
Pascal MARTIN

文字列にキャストするか、文字列コンテキストで使用します。

$value = (string) $simpleXmlDoc->SomeNode->InnerNode;
// OR
echo $simpleXmlDoc->SomeNode->InnerNode;

SimpleXMLリファレンス関数ガイド を参照してください

3