为什么我不能在xpath包含'svg'元素的网页中找到'svg'元素?

时间:2017-12-18 08:55:39

标签: html xpath

在包含以下代码的网页中:

...
<svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1394" height="450" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%;">
<defs id="defs-a3c0aa">
<g class="clips">
<clipPath class="axesclip" id="clipa3c0aax">
<rect x="40" y="0" width="1274" height="450">
....

我使用'Try XPath'扩展来搜索xpath,我尝试使用以下表达式:

//svg

但没有回击。找到的元素数量为零。并且该页面中没有iframe。

那么可能会发生什么? (我不能发布页面,因为它不公开)...

2 个答案:

答案 0 :(得分:1)

最好使用xpath下面的

//*:svg

它表示所有具有任何名称空间及其本地名称的后代都是svg

//*[local-name() = 'svg']

以上也可以。希望这会有所帮助...

答案 1 :(得分:0)

<svg>元素具有命名空间。您需要使用前缀注册名称空间,并在XPath中指定前缀。例如,如果为s注册前缀http://www.w3.org/2000/svg,则XPath表达式将变为

//s:svg

如何注册命名空间取决于您使用的语言。