【发布时间】: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 输出。