简体   繁体   English

如何使用 php 解析 Html 元素?

[英]how to parse Html element using php?

I want to get <a> element of html. I use xPath /html/body/nav/div/a but not correct.我想获取 html 的<a>元素。我使用 xPath /html/body/nav/div/a但不正确。 Someone know how I get the Example text ?有人知道我如何获得Example text吗?

<nav class="navbar  navbar-expand-xl" id="menu">
    <div>
<a>
<i class="fas fa-user mr-2"></i>
        Example text
</a>
    </div>

You can parse it via DOM or use XPath.您可以通过 DOM 解析它或使用 XPath。

Here is an example of each.这是每个的示例。
Demo: https://3v4l.org/nvcYP演示: https://3v4l.org/nvcYP

$html = <<<'_HTML'
<nav class="navbar navbar-expand-xl" id="menu">
    <div>
        <a><i class="fas fa-user mr-2"></i>Example text</a>
    </div>
</nav>
_HTML;

libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML($html);

// parsing the elements
$nav = $doc->getElementById('menu');
$text = $nav->getElementsByTagName('a')->item(0)->nodeValue;
echo $text;

// using xpath
$xpath = new DOMXPath($doc);
$text = $xpath->query('//nav[@id="menu"]/div/a')->item(0)->nodeValue;
echo $text;

Your code should look like this:您的代码应如下所示:

<i class="fas fa-user mr-2"> Example text </i>

Here is the parse coding:这是解析编码:

<?php
  $doc = new DOMDocument();
  $doc->loadHTML("<html><body><h1>Parsing Html in PHP</h1></body></html>");
  echo $doc->saveHTML();
?>

   

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM