web-dev-qa-db-ja.com

PHP)でハイフンを使用したXMLノード名の使用

XMLからいくつかのデータを抽出しようとしていますが、以下を実行すると、

警告:.。のforeach()に無効な引数が指定されました.

コード例:

foreach ($xml->custom-field-value as $milestone)
{
    ...     
}

単一の単語であるノード名には問題なく機能するため、ハイフンは気に入らないと思います。それらをエスケープする必要がありますか?もしそうなら、どのように?

39
williamsdb

From PHP manual

PHPの命名規則で許可されていない文字(ハイフンなど)を含むXMLドキュメント内の要素にアクセスするには、要素名を中括弧とアポストロフィでカプセル化します。

あなたの場合あなたはします:

$xml->{'custom-field-value'}
76
codaddict