Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP进行DOM操作_Php_Dom_Parsing - Fatal编程技术网

用PHP进行DOM操作

用PHP进行DOM操作,php,dom,parsing,Php,Dom,Parsing,我想用PHP对DOM元素进行一个简单但非琐碎的操作,但我迷路了 假设像维基百科这样的页面上有段落和标题(,)。他们是兄弟姐妹。我想把这两个元素按顺序排列 我尝试了GetElementbyName,但是您无法组织信息。 我尝试了DOMXPath->query(),但我发现它确实令人困惑 只需解析如下内容: <html> <head></head> <body> <h2>Title1</h2> <p

我想用PHP对DOM元素进行一个简单但非琐碎的操作,但我迷路了

假设像维基百科这样的页面上有段落和标题(
)。他们是兄弟姐妹。我想把这两个元素按顺序排列

我尝试了
GetElementbyName
,但是您无法组织信息。 我尝试了
DOMXPath->query()
,但我发现它确实令人困惑

只需解析如下内容:

<html>
  <head></head>
  <body>
    <h2>Title1</h2>
    <p>Paragraph1</p>
    <p>Paragraph2</p>
    <h2>Title2</h2>
    <p>Paragraph3</p>
  </body>
</html>

标题1
第1段

第2段

标题2 第3段

进入:

标题1 第1段 第2段 标题2 第3段 有了一些HTML代码,我就不需要了


多谢各位。我希望这个问题看起来不像家庭作业。

我认为
DOMXPath->query()
是正确的方法。此XPath表达式将返回属于同一级别的
的所有节点(因为您说过它们是兄弟节点)

/html/body/*[name()='p'或name()='h2']
节点将以正确的顺序(文档顺序)返回。然后,您可以在结果上构造一个foreach循环。

我使用了S.C.Chen的简单html dom几次

访问dom元素的完美类

例如:

// Create DOM from URL or file
$html = file_get_html('http://www.google.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>'; 
//从URL或文件创建DOM
$html=file\u get\u html('http://www.google.com/');
//查找所有图像
foreach($html->find('img')作为$element)
echo$element->src'
'; //查找所有链接 foreach($html->find('a')作为$element) echo$element->href
';
看看这里


可能对将来的项目有帮助

请尝试查看此库和相应的项目:


这允许您从文件系统打开在线网页或html页面,并通过类名、标记名和ID访问其项。如果您熟悉jQuery及其语法,就不需要花时间来习惯这个库。

正是我想要的。我不得不加入一些div,但效果很好。非常感谢你。 /html/body/*[name() = 'p' or name() = 'h2']
// Create DOM from URL or file
$html = file_get_html('http://www.google.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>';