यह

2010-10-01 8 views
5

नीचे h3 और h4 टैग ढूंढें यह मेरी HTML है:यह

<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> 

मैं h3 टैग की एक सरणी का निर्माण करने की कोशिश कर रहा हूँ, उनके भीतर नेस्ट h4 टैग के साथ। सरणी का एक उदाहरण इस तरह दिखेगा:

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

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

    [test 3] => Array 
     (
     ) 

) 

preg_match या DOMDocument, किसी भी विचार का उपयोग करने में खुशी है?

उत्तर

6
DOMDocument साथ

:

  • उपयोग XPath "//h3" सभी <h3> खोजने के लिए। ये उनमें से प्रत्येक के लिए अपने सरणी
  • में प्रथम स्तर प्रविष्टियों हो जाएगा:
    • गिनती एक चर $i (1 से गिनती!) पाश के हिस्से के रूप
    • उपयोग XPath "./following::h4[count(preceding::h3) = $i]" किसी भी उप तालमेल को खोजने के लिए <h4>
    • इन आप सरणी में दूसरे स्तर के लिए किया जाएगा

XPath अभिव्यक्ति है "सभी <h4> है कि एक ही सी का चयन <h3> की पिछली संख्या "। पहले <h3> के लिए जो गणना 1 है, स्वाभाविक रूप से, दूसरे के लिए गणना 2 है, और इसी तरह।

संबंधित <h3> नोड्स के संदर्भ में XPath अभिव्यक्ति निष्पादित करना सुनिश्चित करें।

संबंधित मुद्दे