2012-05-09 1 views
2

私が現在取り組んでいるプロジェクトは、Pythonで書かれたWebサイトをPHPコードに翻訳することです。私がやっている部分では、$ _GETリクエストをWebサーバーに送る必要があります。返されるレスポンスは常にXML形式ですから、* simplexml_load_file()*関数を使用して結果を取得しています。PHPのSimpleXMLElementクラスを使用して指定された要素を見つける最良の方法は何ですか?

Webサーバーから返されたXMLを解析する必要があります。 PythonにはBeautifulStoneSoupという素晴らしいライブラリがありました。このライブラリには、find()メソッドがあり、指定された属性の内容を返しました。

http://php.net/manual/en/book.simplexml.phpでPHP関数のリストを見ても、属性名を指定して内容を取得できるようなものは見つけられません。私が探している属性は、必ずしもXML配列の1つのレベルに必ずしも向かないとは限りません。配列にはいくつかの次元があります。

これが十分に具体的でない場合は、例を挙げることができます。助けてくれてありがとう、お友達!

+2

['xpath'](http://de.php.net/manual/ja/simplexmlelement.xpath.php)、誰かがもっと詳しく書いていると思います-depth answer/example soon(tm) – ccKep

答えて

3

Xpathはあなたの探しているもののように聞こえる。 XMLディレクトリのどのレベルでも検索が可能です。説明ノードが内に保持されているものが含まれている場合

次の例では、XMLディレクトリをチェックして深い複数のレベルを探します$txtSearch

$holidayDoc = simplexml_load_file($url);  
$qry = "//channel/item[description[contains(text(),\"$txtSearch\")]]"; 
$holidayDoc->xpath($qry); 

結果は、その後のことができますforeachループ

+0

ああ、はい!なぜ私はそれを以前に見つけることができなかったのですか?それがまさに私が必要としていたものです。どうもありがとうございました。 +++ –

+0

全く問題はありません。私はこれをuniで勉強していて、以前にも聞いたことがありませんでした。 –

+0

あなたが一番役に立ったらこの回答を受け入れることもできます:) –

0

を使用して反復することができ

$xml->xpath('//@myattribute') 
関連する問題