如何在Perl的LibXML查找节点中使用RegEx

时间:2010-11-12 18:30:11

标签: xml perl xpath

我在XML文档中有以下内容:

<ul class="toggle-control toggle-retain-state">

我正在使用XML :: LibXML来解析整个文档,我需要在找到上述项目时采取行动。我继承的代码是:

my ($toggle_container) = $xRoot->findnodes('.//*[@id = "toggle-control"]');

该代码的第一个问题似乎是属性是类,而不是id。所以我把它改成了课,但它仍然找不到它。我猜这是因为这个类是“toggle-control toggle-retain-state”,但我真正想要的是一个匹配,只要它看到class属性中的toggle-control。如何更改find​​nodes调用以实现此目的?

1 个答案:

答案 0 :(得分:6)

使用

//ul[contains(concat(' ', @class, ' '), ' toggle-control ')]

备注:在知道XML文档的结构时,始终尽量避免使用//缩写。使用//缩写可能会导致效率低下。