<ul class="uinfo2"><li class="uname2">ruo</li>
<ul class="uinfo2"><li class="uname"><b>Oinsen</b></li>
如果文件包含上述HTML行,我想从整个源代码中替换粗体标记。
答案 0 :(得分:1)
如果我理解正确,您要从HTML中删除所有<b>
代码?如果是这样,你可以使用jQuery:
$('b').contents().unwrap();
答案 1 :(得分:1)
使用replaceAll方法读取文件的所有内容并以String(例如String content;)存储
line.replaceAll(“&lt; b&gt;”,“”).replaceAll(“&lt; / b&gt;”,“”);
最后将新String写入该文件。
File file = new File("input.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
StringBuilder sb = new StringBuilder();
String line = null;
while((line=reader.readLine()) != null)
sb.append(line.replaceAll("<b>", " ").replaceAll("</b>", " "));
FileWriter writer = new FileWriter(file);
writer.write(sb.toString());
writer.flush();
writer.close();
这是代码。
答案 2 :(得分:1)
使用jsoup可以实现此目的:
import java.io.IOException;
import nu.xom.ParsingException;
import nu.xom.ValidityException;
import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist;
import org.xml.sax.SAXException;
public class HtmlTest {
public static void main(final String[] args) throws SAXException, ValidityException, ParsingException, IOException {
String[] tagsToKeep = new String[] {"ul", "li"};
String html = "<ul class=\"uinfo2\"><li class=\"uname2\">ruo</li>\n<ul class=\"uinfo2\"><li class=\"uname\"><b>Oinsen</b></li>";
System.out.println(JSoup.clean(html, Whitelist.none().addTags(tagsToKeep)));
}
}
使用您不想删除的所有代码初始化tagsToKeep
并将其传递给addTags
。
答案 3 :(得分:0)
您可以使用正则表达式,但在尝试匹配HTML时,它们会很快变得复杂。如果您的文件符合XHTML(这似乎是),我建议将文件加载为XML并使用XPath确定这是否符合您的标准 - 然后使用DOM操作来替换粗体标记,但需要。