Php 如何将网页中的所有HTML标记提取到数组中?
我需要将网页中的所有HTML标记提取到一个数组中,而不包含标记中的数据。它看起来像 我正在使用PHPPhp 如何将网页中的所有HTML标记提取到数组中?,php,html,xml,dom,extract,Php,Html,Xml,Dom,Extract,我需要将网页中的所有HTML标记提取到一个数组中,而不包含标记中的数据。它看起来像 我正在使用PHP Array { html => Array { head => Array { title,
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'
}
}
}
}
}
}
您需要的是一个HTML解析器(XML解析器可能不会这样做,因为HTML通常是无效的)。可能:您需要的是一个HTML解析器(XML解析器可能不会这样做,因为HTML通常是无效的)。可能:我认为最简单的方法是使用XPath
//*::name()
应该提供所有级别上所有节点的名称。但我不确定层次结构是否会扁平化。我认为最简单的方法是使用XPath
//*::name()
应该提供所有级别上所有节点的名称。但是,我不确定层次结构是否会被展平。您也可以使用。您也可以使用建议的第三方替代方案来代替实际使用的字符串解析:,并且当您使用
加载HTML()
时,.DOM可以很好地加载真实世界的HTML。这似乎是一个常见的误解。建议使用第三方替代方法来代替字符串解析:,.DOM可以在使用loadHTML()
时很好地加载真实世界的HTML。这似乎是一个常见的误解。可能的重复,可能的重复这是怎么回事?我只是在Firefox的控制台上执行了它,得到了一个基本上为空的返回值。这应该如何工作?我只是在Firefox的控制台上执行了它,得到了一个基本为空的返回值。