とりあえず、次のような XML ドキュメントがあるとします。
<errors>
<viewErrors>
<viewError code="404">Can't finde requested file</viewError>
<viewError code="405">Method not allowed</viewError>
</viewErrors>
</errors>
そして、私はこれでそれを読みました:
$_xml = new DOMDocument('1.0', 'utf-8');
$_xml -> load("doc.xml");
$_xpath = new DOMXPath($_xml);
echo $_xpath -> evaluate( '//viewError[@code="404"]' ) -> item(0) -> textContent;
「要求されたファイルが見つかりません」というメッセージが出力され、短期的には良い解決策ですが、あまりクリーンでもなく、複製も簡単ではありません。まず、XML が次のように変更された場合:
<viewError code="404" type="test">Can't find requested file</viewError>
評価パターンを次のように変更する必要があります
evaluate ( '//viewError[@code="404" and @type="test"]' )
しかし、この評価全体がどのように機能するかを理解していないため、 item(0) -> textContent を使用すると「オブジェクト以外のプロパティを取得しようとしています」というエラーが発生するため、タグの内容を読み取る方法がわかりません。したがって、2 つの質問があります。
- PHP で XML を読み取るよりクリーンな方法はありますか
- よりクリーンな方法がない場合、上記のスクリプトから評価されたタグの内容を読み取るにはどうすればよいですか。