bunun

2010-10-01 26 views
5

altında h3 ve h4 etiketlerini bul Bu benim HTML: Ben h3 etiketleri dizisi kurmaya çalışıyorumbunun

<h3>test 1</h3> 
<p>blah</p> 
<h4>subheading 1</h4> 
<p>blah</p> 
<h4>subheading 2</h4> 
<h3>test 2</h3> 
<h4>subheading 3</h4> 
<p>blah</p> 
<h3>test 3</h3> 

, içlerinde iç içe h4 etiketleriyle.

Array 
(
    [test1] => Array 
     (
      [0] => subheading 1 
      [1] => subheading 2 
     ) 

    [test 2] => Array 
     (
      [0] => subheading 3 
     ) 

    [test 3] => Array 
     (
     ) 

) 

preg_match veya DOMDocument kullanmak Mutlu, herhangi bir fikir: dizinin bir örneği gibi görünecektir? DOMDocument ile

cevap

6

:

  • kullanım XPath "//h3" tüm <h3> bulmak için. Bunlar her biri için dizinin
  • birinci seviye girişleri olacaktır:
    • saymak değişken
    • kullanım XPath "./following::h4[count(preceding::h3) = $i]" herhangi bir alt koordineli bulmak için (1'den saymak!) Döngünün bir parçası olarak $i
    • <h4> bu

XPath ifadesi "aynı c olan tüm <h4> seçmektir size dizideki ikinci düzey olacak önceki <h3> numaralı telefon numarası ". İlk sayım <h3> için 1, doğal olarak, ikinci için sayı 2, vb.

İlgili <h3> düğümleri bağlamında XPath ifadesini çalıştırdığınızdan emin olun.

İlgili konular