我有以下HTML,正在尝试获取脚本节点中的注释:
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
url = 'http://someurl.com';
-->
</script>
</head>
</html>使用它,我得到了脚本节点:
javascript_code = doc.xpath("/html/head/script")但是,在将comments()添加到xpath时,它不返回任何内容:
javascript_code = doc.xpath("/html/head/script/comment()")我不知道为什么这不起作用,看起来应该很简单。有可能得到评论吗?
发布于 2013-03-13 13:23:21
如果您将文档解析为XML,它将找到注释。但是,如果您将其解析为HTML,Nokogiri会将脚本标记的全部内容放入cdata部分。然后你可以把它解析出来。
require 'rubygems'
require 'nokogiri'
body = DATA.read
doc = Nokogiri::XML(body)
puts doc.search('/html/head/script/comment()').text.strip
# puts "url = 'http://someurl.com';"
doc = Nokogiri::HTML(body)
puts doc.search('/html/head/script').text.strip
# puts "<!--\n url = 'http://someurl.com';\n -->"
__END__
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
url = 'http://someurl.com';
-->
</script>
</head>
</html>https://stackoverflow.com/questions/15351391
复制相似问题