我在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。如何更改findnodes调用以实现此目的?
答案 0 :(得分:6)
使用强>:
//ul[contains(concat(' ', @class, ' '), ' toggle-control ')]
备注:在知道XML文档的结构时,始终尽量避免使用//
缩写。使用//
缩写可能会导致效率低下。