【问题标题】:How to find the specific attribute of a tag inside a script using Java?如何使用 Java 在脚本中查找标签的特定属性?
【发布时间】:2013-04-29 12:49:09
【问题描述】:

我一直在 stackoverflow 中查看如何在大文本中搜索字符串部分。但我还没有设法找到如何使用 Java 在脚本中获取属性的特定值。目标是逐行读取文件(脚本),并提取属性“src”的值。

例如,该文件有很多行包含此结构:

<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<script data-main="js/" src="js/require.min.js"></script>
<script data-main="js/" src="js/main.js"></script>
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<script data-main="js/" src="js/require.min.js"></script>

所以,使用Java,我使用BufferedReader类以这种方式读取文件,我想为每一行获取“src”的值,例如,对于第一行,我想获取:js/vendor/modernizr-2.6.2.min.js,对于第二行,我想得到js/require.min.js等等,我看到了一些使用正则表达式的建议,但我不知道在这种情况下它是否最有效:

public Helper(String scriptPath) {
        File scriptFile = null;
        try {
            scriptFile = new File(scriptPath);
            String relativePath = scriptFile.getParent();
            System.out.println(relativePath);
            BufferedReader reader = new BufferedReader(new FileReader(scriptFile));
            String readLine;

            while ((readLine = reader.readLine()) != null) {
                // How to match the src?
            }

            reader.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

拜托,如果有人可以帮助我,我真的很感激,或者如果有人知道已经有这个问题的答案,请让我知道以关闭它,但在我一直在搜索的时候,我没有'还没有发现这种问题。

非常感谢您。

【问题讨论】:

  • 查看正则表达式和组。
  • 脚本标签是否在 HTML 或 XML 中?无论哪种方式,我的建议是分别使用 HTML 解析器或 XML 解析器。
  • 正如吉尔伯特所说,您应该使用解析器来处理与 XML/HTML 相关的标签。
  • 文档不一定包含xml或html标签,它可以只包含标签
  • 如果它是一个 php 文件,您可能会错过一些脚本,除非您执行该文件并捕获 HTML 输出。然后您可以使用 HTML 解析器来解析 HTML 输出。

标签: java regex string file


【解决方案1】:

您的文件看起来像 html 我会考虑使用 Html 解析器。 http://jsoup.org/ 很容易与 CSS 选择器一起使用

【讨论】:

  • 实际上,该文件具有“.php”扩展名。 Html Parser 是否也适用于 php 文件?
  • 据我所知 jsoup 不关心文件扩展名
  • 谢谢,我不允许使用外部 jar 或 api,但我会将您的答案标记为正确,因为它是最佳选择。谢谢。
猜你喜欢
  • 1970-01-01
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 2016-11-13
  • 1970-01-01
  • 2016-07-02
相关资源
最近更新 更多