Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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 在XPATH表达式中再添加两个条件_Php_Xpath - Fatal编程技术网

Php 在XPATH表达式中再添加两个条件

Php 在XPATH表达式中再添加两个条件,php,xpath,Php,Xpath,我想从页面中的许多表中选择此表(如图所示)。我目前使用的Xpath运行良好: $elements = $dom_xpath->query('//table[descendant::td[1]="Train No" and descendant::td[3]="Runs From Source"]'); 但很明显,它没有得到优化。 我想增加两个条件 TD内部的“列车编号”和“从源头运行”是从第一次TR开始的 该表必须仅包含两个TR(头的第一个TR) 只需指定整个xpath,而不是说td

我想从页面中的许多表中选择此表(如图所示)。我目前使用的Xpath运行良好:

$elements = $dom_xpath->query('//table[descendant::td[1]="Train No" and descendant::td[3]="Runs From Source"]');
但很明显,它没有得到优化。 我想增加两个条件

  • TD内部的“列车编号”和“从源头运行”是从第一次TR开始的
  • 该表必须仅包含两个TR(头的第一个TR)


只需指定整个xpath,而不是说td是表的后代,就可以加快速度。您有任何理由不使用//table/tbody/tr/td吗?@Neil这很好,但是如果您知道XML文档的结构,那么使用更高效的XPath表达式是可能的——如果您提供XML文档,那么就可以避免使用
/
操作符,这在许多情况下是主要的效率低下的原因。你可以这样做,还是结构未知?