3

私は、私が行うDomDocumentことは不可能var_dumpです(それは本当に私を怒らせます):

var_dump($dom->getElementsByTagName('url'));

このような応答で:

<?xml version="1.0" ?>
<rss version="2.0">
  <channel>
      <url>beaute-mode/cheveux/11460--choisir-un-headband</url>
      <title>get_url_article</title>
      <host>myhost</host>
  </channel>
</rss> 

しかし、生データ (URL) の代わりにvar_dump: というエコーが表示されました。object(DOMNodeList)[262]

私の質問は非常に単純ですが、カプセル化せずに生データを取得するにはどうすればよいDomNodeListですか?

ありがとう。

4

2 に答える 2

3

DOMNodeList::item()by インデックスに aDOMNodeを指定します。DOMNodeListたとえば、リストの最初のノードを取得するには、次のようにします。

$dom->getElementsByTagName('url')->item(0)

要素に含まれる実際のデータを取得するには、次のようなコードを使用します。

if ($node = $dom->getElementsByTagName('url')->item(0)) {
  $url = $node->nodeValue;
} else {
  // Element does not exist, handle error here
}
于 2012-08-24T11:15:04.293 に答える
1

PHP 自体は、PHP 5.4 で改善が発表されたにもかかわらず、DomNodeおよびの構造情報を表示するのにはあまり適していませんDomNodeList

同様の質問Debug a DOMDocument Object in PHP で概説したことを実行できます。

$doc = new DOMDocument();
$doc->loadXML($xml);
DomTree::dump($doc->getElementsByTagName('url'));

次のように出力されます。

`<url>
  `"beaute-mode/cheveux/11460--choisir-un-headband"

このGist of mineでソースコードを見つけることができます。

于 2012-08-24T11:40:39.157 に答える