Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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查找以“开始”开头的类的所有元素;结束日期-“;?_Php_Html_Parsing - Fatal编程技术网

使用PHP查找以“开始”开头的类的所有元素;结束日期-“;?

使用PHP查找以“开始”开头的类的所有元素;结束日期-“;?,php,html,parsing,Php,Html,Parsing,提前感谢您接受我的PHP限制 考虑以下HTML: <div class="story first enddate-2011-04-21"> <h3>misc HTML content</h3> ... </div> <div class="sparkly enddate-2014-01-01"> <p>blah blah blah</p> ... </div> 是否可以将其修

提前感谢您接受我的PHP限制

考虑以下HTML:

<div class="story first enddate-2011-04-21">
  <h3>misc HTML content</h3> 
  ...
</div>

<div class="sparkly enddate-2014-01-01">
  <p>blah blah blah</p> 
  ...
</div> 

是否可以将其修改为查找“以“enddate”开头的类?”

我认为可以使用XPath来完成此操作

像这样的方法应该会奏效:

$xpath = new DOMXPath($domdocument);
$elements = $xpath->query("//*[contains(@class, 'enddate-')]");

(xpath查询未经测试)

签出:。看起来像“/*[@class='enddate-*']`,但这是未经测试的。如果您像建议的那样直接使用该属性,则该属性仅在类与您的模式匹配时才起作用,因此它需要以enddate开头才能匹配。contains函数可用于检查子字符串谢谢!我会处理这个问题。如果我读对了:如果像在示例HTML中一样,一个类在enddate(class=“sparky enddate-2014-01-01”)之前有其他值,那么这个实例将找不到?@ErikJ,如果不使用contains函数,是的。
$xpath = new DOMXPath($domdocument);
$elements = $xpath->query("//*[contains(@class, 'enddate-')]");