繁体   English   中英

PHP和Xpath获取具有特定索引的元素

[英]Php and Xpath getting the element with specific index

$td = $xpath->query("//table/tr[2]/td[count(//table/tr[1]/td[.=CCCCC]/preceding-sibling::td)+1]");
echo $td->nodeValue;

这是我的xpath代码,这是我的html代码:

<table border="1">
    <tr>
        <td>AAAA</td>
        <td>BBBB</td>
        <td>CCCCC</td>
        <td>DDDDD</td>
        <td>FFFFF</td>
    </tr>
    <tr>
        <td>1111</td>
        <td>2222</td>
        <td>3333</td>
        <td>4444</td>
        <td>5555</td>
    </tr>
</table>

例如,我要获取CCCCC的索引,在第二行中,我要使用该索引获取3333。 上面的代码实际上不起作用,它给出的结果为空。

我的代码有什么问题?

我认为您只忘记了CCCC周围的撇号

//table/tr[2]/td[count(//table/tr[1]/td[.='CCCCC']/preceding-sibling::td)+1]

DOMXPath::query返回DOMNodeList对象,而不是单个匹配元素。

代替

$td->nodeValue

你需要使用

$td[0]->nodeValue

gtosto的答案也适用-您原始的xpath查询将返回错误的元素。

参见: https : //eval.in/909445

暂无
暂无

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

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