如何在PHP中解析和处理HTML/XML?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (106)

如何解析HTML/XML并从中提取信息?

提问于
用户回答回答于

如何获得HTML元素:

// Create DOM from URL or file
$html = file_get_html('http://www.example.com/');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

// Find all links
foreach($html->find('a') as $element)
       echo $element->href . '<br>';

如何修改HTML元素:

// Create DOM from string
$html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>');

$html->find('div', 1)->class = 'bar';

$html->find('div[id=hello]', 0)->innertext = 'foo';

echo $html;

从HTML中提取内容:

// Dump contents (without tags) from HTML
echo file_get_html('http://www.google.com/')->plaintext;

Scraping Slashdot:

// Create DOM from URL
$html = file_get_html('http://slashdot.org/');

// Find all article blocks
foreach($html->find('div.article') as $article) {
    $item['title']     = $article->find('div.title', 0)->plaintext;
    $item['intro']    = $article->find('div.intro', 0)->plaintext;
    $item['details'] = $article->find('div.details', 0)->plaintext;
    $articles[] = $item;
}

print_r($articles);
用户回答回答于

原生XML扩展

更喜欢使用原生XML扩展

DOM

DOM扩展允许您使用PHP 5通过DOMAPI对XML文档进行操作。它是W3C的文档对象模型核心级别3的实现,这是一个平台和语言无关的接口,允许程序和脚本动态访问和更新文档的内容、结构和样式。

XMLReader

XMLReader扩展是一个XML解析器。

XML分析器

这个扩展允许创建XML解析器,然后为不同的XML事件定义处理程序。每个XML解析器都有一些可以调整的参数。

SimpleXml

SimpleXML扩展提供了一个非常简单和易于使用的工具集,可以将XML转换为可以使用常规属性选择器和数组迭代器处理的对象。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励