如何删除多个 <script> 标签中的选择性 <script> 标签?
How to remove selective <script> tag among multiple <script> tags?
我在一个网页上有多个 <script>
标签。我想从其中删除一些 <script>
标签。我如何使用 Nokogiri?
例如,我有五个 <script>
标签:
<script type="text/javascript" src="script file 1"></script>
<script type="text/javascript" src="script file 2"></script>
<script type="text/javascript" src="script file A"></script>
<script type="text/javascript" src="script file B"></script>
<script type="text/javascript" src="script file C"></script>
我只想删除 "script file 2"
和 "script file B"
。
doc.xpath("//script[@src='script file 2' or @src='script file B']").remove
使用 CSS 我可能会使用类似的东西:
require 'nokogiri'
doc = Nokogiri::HTML::DocumentFragment.parse(<<EOT)
<script type="text/javascript" src="script file 1"></script>
<script type="text/javascript" src="script file 2"></script>
<script type="text/javascript" src="script file A"></script>
<script type="text/javascript" src="script file B"></script>
<script type="text/javascript" src="script file C"></script>
EOT
doc.search('script').select { |script| script['src'][/file [2B]$/] }.map(&:remove)
puts doc.to_html
# >> <script type="text/javascript" src="script%20file%201"></script>
# >>
# >> <script type="text/javascript" src="script%20file%20A"></script>
# >>
# >> <script type="text/javascript" src="script%20file%20C"></script>
我在一个网页上有多个 <script>
标签。我想从其中删除一些 <script>
标签。我如何使用 Nokogiri?
例如,我有五个 <script>
标签:
<script type="text/javascript" src="script file 1"></script>
<script type="text/javascript" src="script file 2"></script>
<script type="text/javascript" src="script file A"></script>
<script type="text/javascript" src="script file B"></script>
<script type="text/javascript" src="script file C"></script>
我只想删除 "script file 2"
和 "script file B"
。
doc.xpath("//script[@src='script file 2' or @src='script file B']").remove
使用 CSS 我可能会使用类似的东西:
require 'nokogiri'
doc = Nokogiri::HTML::DocumentFragment.parse(<<EOT)
<script type="text/javascript" src="script file 1"></script>
<script type="text/javascript" src="script file 2"></script>
<script type="text/javascript" src="script file A"></script>
<script type="text/javascript" src="script file B"></script>
<script type="text/javascript" src="script file C"></script>
EOT
doc.search('script').select { |script| script['src'][/file [2B]$/] }.map(&:remove)
puts doc.to_html
# >> <script type="text/javascript" src="script%20file%201"></script>
# >>
# >> <script type="text/javascript" src="script%20file%20A"></script>
# >>
# >> <script type="text/javascript" src="script%20file%20C"></script>