表的xpath中的正则表达式(PHP)

时间:2016-12-11 11:59:28

标签: php xpath

我需要一个表格的正则表达式,你可以在其中获得“thead / tr / td”,tbody / tr / td,tbody / tr / td / span和tbody / tr / td / a的内容。但不是图像

<table>
    <thead>
        <tr>
            <th>Title1</th><th>Title2</th>
        </tr>
    </thead>
    <thead>
        <tr>
            <td>Date1</td>
            <td><span>Date 2</span></td>
        </tr>
        <tr>
            <td><a href="#">Date3</a></td>
            <td><img src="image.png"></td>
        </tr>
    </thead>
</table>

我尝试过:

$selector = $xpath->query('//table')->item(0); 

$query1 = '/*[self::tbody or self::thead]/tr/[self::th or self::td][not(descendant::img)]/[self::* or self::a or self::span]';

$resultado1 = $xpath->query($query1,$selector);

1 个答案:

答案 0 :(得分:0)

要选择除唯一内容为th|td元素之外的所有img元素,或为空,请尝试

//*[self::td|self::th][node()[not(self::img)]]

如果这不是您的要求,则必须更清楚地解释该要求。例如。如果td包含a|span本身包含img,或者td同时包含a|span和{{img,您想要做什么? 1}}作为兄弟姐妹。