Как извлечь все HTML-теги из веб-страницы в массив? - PullRequest
0 голосов
/ 06 октября 2010

Мне нужно извлечь все теги HTML с веб-страницы в массив без данных внутри тегов .Это будет выглядеть примерно так ...

Я использую PHP

Array 
{
   html =>
             Array 
             {
                 head =>
                          Array
                          {
                              title,
                              meta name='description' content='bla bla'
                              meta name='keyword' content='bla bla'
                              ....
                          },
                 body =>
                          Array
                          {
                              div id='header' =>
                                              Array
                                              {
                                                  div class='logo',
                                                  div class='nav'
                                              },
                              div id='content' =>
                                              Array
                                              {
                                                  h1,
                                                  p class='first-para',
                                                  p,
                                                  p,
                                                  div id='ad'
                                              },
                              div id='footer' =>
                                              Array
                                              {
                                                  ul =>
                                                        Array
                                                        {
                                                            li =>
                                                                  Array
                                                                  {
                                                                     a href='link.htm'
                                                                  },
                                                            li =>
                                                                  Array
                                                                  {
                                                                     a href='link.htm'
                                                                  },
                                                            li =>
                                                                  Array
                                                                  {
                                                                     a href='link.htm'
                                                                  }
                                                        }
                                              }
                          }

             }
}

Ответы [ 3 ]

2 голосов
/ 06 октября 2010

То, что вам нужно, это анализатор HTML (анализатор XML, вероятно, не будет делать, потому что HTML часто недопустим) Может быть: http://simplehtmldom.sourceforge.net/

1 голос
/ 06 октября 2010

Вы также можете использовать расширение PHP DOM .

0 голосов
/ 06 октября 2010

Я думаю, что самый простой способ - использовать XPath.

//*::name()

Должен дать вам имена всех узлов на всех уровнях. Я не уверен, что иерархия не будет сглажена.

...