我有以下字符串:
$str = "
<li>r</li>
<li>a</li>
<li>n</li>
<li>d</li>
...
<li>om</li>
";
Run Code Online (Sandbox Code Playgroud)
如何获取前n个<li>
标签的HTML ?
Ex : n = 3 ; result = "<li>r<...>n</li>;
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想要一个正则表达式.
Byr*_*ock 10
像这样.
$dom = new DOMDocument();
@$dom->loadHTML($str);
$x = new DOMXPath($dom);
// we wan the 4th node.
foreach($x->query("//li[4]") as $node)
{
echo $node->c14n()
}
Run Code Online (Sandbox Code Playgroud)
哦,是的,学习xpath,它将为你节省很多麻烦.
@Byron的解决方案,但使用SimpleXML:
$xml = simplexml_load_string($str);
foreach($xml->xpath("//li[4]") as $node){
echo $node[0]; // The first element is the text node
}
Run Code Online (Sandbox Code Playgroud)
编辑:我真正喜欢simplexml的另一个原因是对节点内容的简单调试.您可以使用print_r($ xml)使用它的子节点打印对象.
归档时间: |
|
查看次数: |
1036 次 |
最近记录: |