使用“Simple HTML DOM”在两个跨度之间获取文本

时间:2011-08-02 11:35:04

标签: php dom text html

基本上,我需要在两个span标签之间获取文本,并且我尝试了许多不同的方法,没有解决方案。 我也在使用Simple HTML DOM Parser(http://simplehtmldom.sourceforge.net/),所以我能做的就是有点限制。 以下是基本设置:

<span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span>

任何帮助?

3 个答案:

答案 0 :(得分:4)

span元素之间的文本应该是DOMTextNode并且是span元素的兄弟。如果SimpleHTMLDom跟随DOM specs,您应该能够得到它:

$text = $html->find('span[class=1]', 0)->next_sibling();

如果这不起作用,请考虑使用基于libxml的更合适的解析器,例如:见

答案 1 :(得分:0)

尝试PHP Dom

$dom = new DomDocument;
$dom->loadHtml('
    <span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span>
');

$xpath = new DomXpath($dom);
foreach ($xpath->query('//body/text()') as $textNode) {
    echo $textNode->nodeValue; // will be: ' TEXT I NEED TO GET '
}

答案 2 :(得分:0)

find(&#39; text&#39;,$ index)

  

这将为您提供文本块。

试试这个:

echo $html->find('text',1);

输出:

TEXT I NEED TO GET

DEMO