如何用文本文件中的空格替换标签?

时间:2011-11-21 18:46:12

标签: java

<ul class="uinfo2"><li class="uname2">ruo</li>
<ul class="uinfo2"><li class="uname"><b>Oinsen</b></li>

如果文件包含上述HTML行,我想从整个源代码中替换粗体标记。

4 个答案:

答案 0 :(得分:1)

如果我理解正确,您要从HTML中删除所有<b>代码?如果是这样,你可以使用jQuery:

$('b').contents().unwrap();

请参阅:Remove a HTML tag but keep the innerHtml

答案 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操作来替换粗体标记,但需要。