Xpath在链接文本中获取文本

时间:2014-01-26 14:37:28

标签: regex xpath

我想获得这个html行的纯文本:

<p>hi i am a developer in <a href="example.com">example</a></p>

明文应为:

  

您好我是一名开发人员

我使用了这个XPath查询,但它不起作用:

'//p'

任何人都可以帮我用'a'来检索'p'的文字吗?

感谢。

4 个答案:

答案 0 :(得分:1)

使用strip_tags()

echo strip_tags('<p>hi i am a developer in <a href="example.com">example</a></p>');

如果您想使用Xpath完成此操作,则以下内容应该有效:

$xpath = new DOMXPath($dom);
$node = $xpath->query('//p')->item(0)->textContent;
echo $node;

两个输出:

hi i am a developer in example

Demo.

答案 1 :(得分:0)

此代码适用于我:

$dom = new DOMDocument; 
$dom->loadXML('<p>hi i am a developer in <a href="example.com">example</a></p>'); 
$xpath = new DOMXPath($dom); 
$nodelist = $xpath->query("//p");
for($i=0; $i < $nodelist->length; $i++) {
    $node = $nodelist->item($i);
    echo $node->nodeValue . "\n";
}

输出:

hi i am a developer in example

答案 2 :(得分:0)

您可以使用此xpath查询:

//p/descendant-or-self::text()

答案 3 :(得分:0)

您可以使用以下XPath符号获取所有文本:

xpath = "//text()"