我想找到:
<div style="text-align:center;" >
<div style="text-align: center;" >
<div style="text-align:center" >
<div style="text-align: center" >
所以 center 之前的可选空格和最后的可选分号。
我能做到:
//div[@style=’text-align:center;’ or @style=’text-align: center;’ or @style=’text-align:center’ or @style=’text-align: center’]
但是有一种“清洁”的方式吗?能够在不太长的情况下使用更多可选字符吗?
答案 0 :(得分:1)
您可以先删除可选字符fe space和分号,假设它们未在所需文本中使用translate()
函数,然后检查结果是否仅等于所需的文本fe&# 39;文本对齐:中心&#39; :
//div[translate(@style, ' ;', '') = 'text-align:center']
或者,当模式变得更复杂时,您可以通过PHP preg_match
在XPath中使用正则表达式:
$xp->query("//div[php:function('preg_match', '~text-align:\s*center;*~', string(@style))]");
请参阅我的旧帖子中演示如何从XPath调用PHP函数的完整示例:Get hrefs that match regex expression using PHP & XPath。