【问题标题】:Get Javascript tag content获取 Javascript 标签内容
【发布时间】:2009-12-23 01:56:23
【问题描述】:

您好,我想使用 java 将网站的源代码保存到文件中。从源代码中我只想得到<script> </script>标签内容我该怎么做?

【问题讨论】:

  • 你是指Java还是JavaScript?它们是完全不同的技术......
  • 他想通过使用 Java 从页面中获取 Javascript。
  • 您的主题中有 Javascript,但您的问题中有 Java。它是哪一个? Java 之于 Javascript 就像 ham 之于仓鼠。
  • @Randal LOL!我一直在寻找这样的比较,但想不出一个——太棒了! Anon 查看了他的问题的来源并看到了未转义的脚本标签——我认为他是对的。
  • 您需要帮助哪一部分?您需要在 Java 中通过 HTTP 下载文件(步骤 1),然后解析 HTML 以添加 <script> 标记内容。

标签: java javascript


【解决方案1】:

使用 Java 中的 HTML 解析器从 HTML 中提取文本。

【讨论】:

【解决方案2】:

将源代码加载到 Java 中的变量后,在文件中找到 <script> 的位置和 </script> 的位置,并删除不在该范围内的所有内容。

类似:

String sourceCode  = "source code here"
String startTag    = "<script>";
String endTag      = "</script>";

    int startInt = sourceCode.indexOf(startTag);
    int endInt   = sourceCode.indexOf(endTag);

所以子字符串是:

String jsCode   = sourceCode.substring(startInt,endInt);

(这可能很明显是错误的,我暂时无法测试,抱歉)

【讨论】:

  • 我不知道该怎么做,请您指导我查看我使用 Google 研究了几天的任何教程或示例,但仍然无法找到我想要的内容
  • 您好,谢谢,但是我的源代码有多个脚本元素,有什么解决方案可以获取多个
  • 新手,把约翰尼的代码放在一个循环中。 indexOf() 方法将找到字符串的下一个出现,所以第一次通过循环,你找到了第一个开始/结束对。在下一次循环迭代中,将起始位置设置为 endInt 之后的 1,然后您将找到下一对。每次通过循环,将 jsCode 字符串添加到集合中。当没有更多匹配项时,您就完成了,并且您的集合对于您找到的每个脚本元素都有一个项目。请注意,这只会让您获得内联脚本的代码,而不是包含脚本的来源,例如[脚本 src='foo.js][/script]
  • 我可以在while循环中放入什么条件,因为我在调用该方法时一直挂起,我认为问题是无限循环。 while(){ int startInt = sourceCode.indexOf(startTag); int endInt = sourceCode.indexOf(endTag); }
  • 获取整个页面正文的长度。在 while() 子句中,测试 startInt 是否小于该长度。每次通过循环时,您都必须让 indexOf() 在最后一个 endInt 之后开始: indexOf(sourceCode, endInt +1) 或类似的东西。看java-samples.com/showtutorial.php?tutorialid=225。这就是我的全部,我得回家了……
猜你喜欢
  • 1970-01-01
  • 2012-10-23
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 2015-02-08
相关资源
最近更新 更多