2016-04-27 3 views
0

:私が達成しようとしている何シンプルなDOMドキュメント反復

<html> 
    <body> 
     <div class="somethingunneccessary"></div> 
     <div class="container"> 
     <div> 
      <p>text1</p> 
      <p>text2</p> 
      <p>text3</p> 
     </div> 
     <div> 
      <p>text4/p> 
      <p>text5</p> 
      <p>text6</p> 
     </div> 
     <div> 
      <p>text7</p> 
      <p>text8</p> 
      <p>text9</p> 
     </div> 
     <div> 
      <p>text10</p> 
      <p>text11</p> 
      <p>text12</p> 
     </div> 
     <div> 
      <p>text13</p> 
      <p>text14</p> 
      <p>text15</p> 
     </div> 
     </div> 
    </body> 
</html> 

は以下の通りです:

クラスを持つdiv要素内のdiv要素の上に

1 /ループcontainer

2. /繰り返しの間、私は3番目のp tagからテキストを取得したいと思います。

ループ部分は、私はいくつかのコードが実行持って

ちょうど自分自身でのpタグを切り出すのではなく、必要不可欠であるが、それはループしません:どのように私は

$doc=new DOMDocument(); 
$doc->loadHTML($htmlsource); 
$xpath = new DOMXpath($doc); 
$commentxpath = $xpath->query("/html/body/div[2]/div[5]/p[3]"); 
$commentdata = $commentxpath->item(0)->nodeValue; 

を各内部div要素にループし、3番目のpタグを抽出します。

私が言ったように、ループは不可欠です。

+0

あなたの言語がオブジェクトの反復処理に使用するどのようなメカニズムを使ってみましたか? –

+0

@ IgnacioVazquez-Abramsそれは私が助けを必要とするものです。コンテナdiv内のdiv要素を反復するようにスクリプトを調整しています – slicks1

+0

あなたは、あなたの言語がどのように反復するのか分かりません。 –

答えて

0

を返す必要があります

/html/body/div/div//p 

3番目のpタグからのテキスト

試してみてください。

"//div[@class='container']/div/p[3]" 

これは、クラスのコンテナでのdivのすべてのdivの内側にあるすべての第3のpを返す必要があります。

+0

これは素晴らしいです。私はさらなる質問があります。どうすれば各div内の他のp要素からの値が必要なのでしょうか? divからすべてのpタグを取得するためにこのクエリを変更するには – slicks1

+0

すべてのpは '..../div/p'になります。 –

+0

具体的な例をdiv要素に対して反復し、各p要素を多次元配列に格納することはできますか? – slicks1

0

あなたは属性の上に照会する必要がある場合がありますphp xpath get attribute value

$xpath->query("/html/body/div[@class='container']"); 
+0

私の更新された質問を見てください – slicks1

0

をするだけしてみてください、私がつかむしたい繰り返しの間だけp要素のXD

+0

私の更新された質問を見てください – slicks1

関連する問題