我有这个 HTML 模板:
<div>
<p class="ex-fr">Tex1 - Edit</p>
Out Text 1 Edit
<p>Tex2 - Edit</p>
Out Text 1 Edit
<br>
Out Text 3 Edit
</div>
我想创建一个页面来编辑此模板的文本和标签属性。
为此,我需要将此 html 解析为 php 数组并加载页面。
这是一个假设的数组,我可以从上面写的 html 中得到:
$parsedHtml = array(
'thisIs'=>'tag',
'tag' => 'div',
'attr' => '',
'children'=> array(
0 => array(
'thisIs'=>'tag',
'tag' => 'p',
'attr' => 'class="ex-fr"',
'children'=> array(
'thisIs'=>'text',
'tag' => '',
'attr' => '',
'children'=> 'Tex1 - Edit'
)
),
1 => array(
'thisIs'=>'text',
'tag' => '',
'attr' => '',
'children'=> 'Out Text 1 Edit'
),
2 => array(
'thisIs'=>'tag',
'tag' => 'p',
'attr' => '',
'children'=> array(
'thisIs'=>'text',
'tag' => '',
'attr' => '',
'children'=> 'Tex2 - Edit'
)
),
3 => array(
'thisIs'=>'text',
'tag' => '',
'attr' => '',
'children'=> 'Out Text 2 Edit'
),
4 => array(
'thisIs'=>'sTag',
'tag' => 'br',
'attr' => '',
'children'=> ''
),
5 => array(
'thisIs'=>'text',
'tag' => '',
'attr' => '',
'children'=> 'Out Text 3 Edit'
)
)
);
目前我已经尝试使用这个类: https ://code.google.com/p/php-html2array/downloads/detail?name=class.htmlParser.php 问题是该类只返回标签,而没有标签的文本应该被忽略,如“Out Text 1 Edit”或“Out Text 2 Edit”
所以给定的数组是
(
[-{}-2-0-{}-] => Array
(
[id] => -{}-2-0-{}-
[father] =>
[tag] => div
[innerHTML] => <p class='ex-fr'>Tex1 - Edit</p> Out Text 1 Edit <p>Tex2 - Edit</p> Out Text 1 Edit <br> Out Text 3 Edit
[htmlText] => <div > <p class='ex-fr'>Tex1 - Edit</p> Out Text 1 Edit <p>Tex2 - Edit</p> Out Text 1 Edit <br> Out Text 3 Edit </div>
[stratr] =>
[childNodes] => Array
(
[0] => Array
(
[id] => -{}-1-0-{}-
[father] => -{}-2-0-{}-
[tag] => p
[innerHTML] => Tex1 - Edit
[htmlText] => <p class='ex-fr'>Tex1 - Edit</p>
[stratr] => class='ex-fr'
[childNodes] => Array
(
)
)
[1] => Array
(
[id] => -{}-1-1-{}-
[father] => -{}-2-0-{}-
[tag] => p
[innerHTML] => Tex2 - Edit
[htmlText] => <p>Tex2 - Edit</p>
[stratr] =>
[childNodes] => Array
(
)
)
[2] => Array
(
[id] => -{}-0-0-{}-
[father] => -{}-2-0-{}-
[tag] => br
[innerHTML] => <br>
[htmlText] => <br>
[stratr] =>
[childNodes] => Array
(
)
)
)
)
)
任何想法将 html 解析为数组?(我已经搜索了浏览器如何解析 html 代码并将其显示在控制台中,例如 chrome 或 firebug,它们允许编辑)
我知道用正则表达式解析 html 很难或不可能,还有其他解决方案吗?
提前谢谢大家,对不起我的英语不好
最好的问候安德里亚。