Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/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
Ruby 如何使用Nokogiri获取倒数第二个脚本结束标记_Ruby_Nokogiri - Fatal编程技术网

Ruby 如何使用Nokogiri获取倒数第二个脚本结束标记

Ruby 如何使用Nokogiri获取倒数第二个脚本结束标记,ruby,nokogiri,Ruby,Nokogiri,我需要使用Nokogiri获得倒数第二个脚本结束标记 示例代码: <head> <script src="first.js"></script> <script src="second.js"></script> <!-- How to place some scripts here? --> <script> // init load </script&

我需要使用Nokogiri获得倒数第二个脚本结束标记

示例代码:

<head>
    <script src="first.js"></script>
    <script src="second.js"></script>
    <!-- How to place some scripts here? -->
    <script>
      // init load
    </script>
</head>

我试过像doc.css'/html/head/script'[-2]这样的代码。但是,它会将代码放在标记中。

由于您没有给我们预期的结果,所以不完全清楚您想要什么,但这似乎是您所说的:

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<html>
    <head>
        <script src="first.js"></script>
        <script src="second.js"></script>
        <!-- How to place some scripts here? -->
        <script>
          // init load
        </script>
    </head>
</html>
EOT

doc.css('script')[-2].add_next_sibling("\n<script src='new_script.js'></script>")
其结果是:

doc.to_html
# => "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n" +
#    "<html>\n" +
#    "    <head>\n" +
#    "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
#    "        <script src=\"first.js\"></script>\n" +
#    "        <script src=\"second.js\"></script>\n" +
#    "<script src=\"new_script.js\"></script>\n" +
#    "        <!-- How to place some scripts here? -->\n" +
#    "        <script>\n" +
#    "          // init load\n" +
#    "        </script>\n" +
#    "    </head>\n" +
#    "</html>\n"
Nokogiri的方法非常有用。我建议你多读几遍

Nokogiri不知道结束标记。解析后,它知道有一个对象,并且该对象在层次结构中有同级,因此我们可以搜索这些对象,然后在本例中插入一个新节点。如果您要求它输出HTML,则根据HTML规则,它将提供结束标记,即使它们最初不在那里。

请参阅和链接的页面和。没有最低限度的代码示例来演示您想要的内容,也没有预期的结果。