0

次の形式の html ドキュメントがあります。

<div....>
  <map name="blah"
           .
           .
   />
  <map name="blah2"
          .
          .
   />
</div>

常に 2 番目のマップを取得したいと考えています。ただし、完全に動的にしたい。

$url = $_GET['url'];
$html_content = getHTML($url);
$html = str_get_html($html_content);

$map = $html->find('map[name=blah2]');

前述の行は完全に正常に機能しています。しかし、前に述べたように、手動で名前を付けたくありません。私は常に2番目のマップを取りたいだけです。さらに、マップの名前も取得したいと思います。

何か案は?

ps 次のコードは機能しません。私は前にこれを試しました。また、マップの下にコンテンツを表示しません。ただし、マップの名前を正しく返します

   $map = $html->find('map',1);
4

3 に答える 3

1

どうですか:

$map = $html->find('map', 1);
echo $map->name;
于 2012-11-21T15:49:35.453 に答える
1

これはとても簡単だ:

$map = $html->find('map',1);
if($map != null)
    $name = $map->name;

あなたはただなければなりませんでした。

于 2012-11-21T15:49:52.050 に答える
1

PHPQuery http://code.google.com/p/phpquery/などの jQuery のポートを使用できます。これにより、eq() セレクターが提供され、一般に XML のかなりリッチな操作が可能になります。

于 2012-11-21T15:50:56.027 に答える