我对JSoup有以下问题。JSoup:替换字符串添加新行
我想分析和修改下面的html代码:
<code>
<style type="text/css" media="all">
@import url("http://hakkon-aetterni.at/modules/system/system.base.css?ll3lgd");
@import url("http://hakkon-aetterni.at/modules/system/system.menus.css?ll3lgd");
@import url("http://hakkon-aetterni.at/modules/system/system.messages.css?ll3lgd");
@import url("http://hakkon-aetterni.at/modules/system/system.theme.css?ll3lgd");
</style>
</code>
我用下面的代码acheive说:
Elements cssImports= doc.select("style");
for (Element src : cssImports) {
String regex ="url\\(\"(.)*\"\\)";
String data =src.data();
String link;
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(data);
while (m.find()){
link=m.group().substring(5,m.group().length()-2);
doc=Jsoup.parse(doc.html().replace(link, ""));
}
}
首先,它的工作原理。所有导入网址都替换为字符串“FOUND
”。我遇到的问题是,我在最后一条导入语句和封闭的</style>
标记之间找到了很多新行,这些标记之前没有。
任何线索为什么这是偶然的,我怎么能避免它?
对不起,格式不好,但我好像我的代码的一些部分刚刚发布时删除。围绕第一个代码块有一个样式标签...
我实际上遇到了与jsoup完全相同的问题。我想这是jsoup试图通过插入额外的HTML来验证文档是'聪明'。我没有适合你的解决方案。我最终转而使用jericho HTML解析器。 – 2011-05-18 09:47:56