在属性

时间:2015-08-16 19:03:00

标签: php xpath

我正在尝试使用DOMXPath查找包含此值{{xxx}}的所有属性(其中xxx可以是任何内容)。

这是我目前使用的,但它不起作用。我也没有收到任何错误,说这是一个无效的查询。

foreach($docx->query('//*[*="*{{*}}*"]') as $node){
    // Do some stuff
}

我正在尝试查找可能类似于(但不限于)以下内容的项目:

<a href="/path/{{value}}">Link</a>
<p class="{{classes}}"></p>

有没有办法使用DOMXPath::query()获取看起来像这样的项目?

1 个答案:

答案 0 :(得分:2)

XPath 2.0具有matches()功能,可让您使用正则表达式。在1.0中,这是DOMXPath使用的,你最好的选择可能是:

//*[contains(@*,"{{") and contains(@*,"}}")]

请注意,这仍然会匹配}}{{之前的情况或这两者之间没有任何内容的情况,因此您可能希望在获得结果后仔细检查结果它们。