Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用xPath提取文本_Xpath - Fatal编程技术网

使用xPath提取文本

使用xPath提取文本,xpath,Xpath,我在xPath中遇到了一个问题 我这样做: //tbody/tr[td]*[2]/span/@onmouseover 结果: showMsgBox('Monster') showMsgBox('Limber') showMsgBox('Carson') showMsgBox('Maniac') 我需要文本,我可以提取不同的文本吗?。我用的是铬合金刮刀。谢谢大家。所以看起来您的HTML结构如下: <tbody> <tr> <td> &

我在xPath中遇到了一个问题

我这样做:

//tbody/tr[td]*[2]/span/@onmouseover
结果:

showMsgBox('Monster')
showMsgBox('Limber')
showMsgBox('Carson')
showMsgBox('Maniac')

我需要文本,我可以提取不同的文本吗?。我用的是铬合金刮刀。谢谢大家。

所以看起来您的HTML结构如下:

<tbody>
  <tr>
    <td>
      <span onmouseover="showMsgBox('Monster')"></span>
    </td>
  </tr>
</tbody>
返回

showMsgBox('Monster')
如果要从中提取
Monster
,则必须使用不同的机制,例如简单的字符串操作或正则表达式

字符串操作 或者如果你不介意魔法常数:

var text = "showMsgBox('Monster')";
text = text.substring(12);
text = text.substring(0, text.length - 2);
或者在使用
切片的单个操作中:

text.slice(12, -2)
正则表达式 您也可以使用正则表达式来提取文本,但我不认为这会使这里的情况变得更好

var text = "showMsgBox('Monster')";
new RegExp("showMsgBox\\('(.*)'\\)").exec(text)[1]


你需要短信是什么意思?你想把字符串放在括号内吗?如果是这样的话,XPath将无法访问该字符串,需要使用其他方法进行分析/提取。我想你需要对结果进行Regexp匹配以提取“文本”。我想使用regex,创建一个CSV,然后将数据导入php。谢谢大家。
text.slice(12, -2)
var text = "showMsgBox('Monster')";
new RegExp("showMsgBox\\('(.*)'\\)").exec(text)[1]
/showMsgBox\('(.*)'\)/.exec(text)[1]