我正在使用Jsoup API解析一些网页。但我得到1个字符集中的页面,并且必须将它们解析为其他
问题:如何将第1行解析为第2行?
String str1 = "Um grupo ligado à al-Qaeda assumiu o "
+ "ataque e ameaçou fazer outros.";
String str2 = "Um grupo ligado à al-Qaeda assumiu o "
+ "ataque e ameaçou fazer outros.";
//(The text above translate to some news about WTC)
答案 0 :(得分:0)
我不是这方面的专家,但我相信你所寻求的答案是http://www.davidcraddock.net/tag/beautifulsoup/
答案 1 :(得分:0)
我还没有真正测试Jsoup,但当我需要使用类org.w3c.tidy.Tidy
将HTML转换为XML时,JTidy对我非常有用。这会自动转换实体。
static String str1 = "Um grupo ligado à al-Qaeda assumiu o "
+ "ataque e ameaçou fazer outros.";
public static void main(String[] args) throws Exception {
System.out.println(cleanData(str1));
}
private static String cleanData(String data) throws UnsupportedEncodingException {
Tidy tidy = new Tidy();
tidy.setNumEntities(true); // to num entities
tidy.setPrintBodyOnly(true); // only print the content
tidy.setWraplen(Integer.MAX_VALUE); // wrap
ByteArrayInputStream inputStream = new ByteArrayInputStream(data.getBytes("UTF-8"));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
tidy.parseDOM(inputStream, outputStream);
return outputStream.toString("UTF-8");
}
如果愿意,您还可以获得Document
的实例。
public org.w3c.dom.Document parseDOM(Reader in, Writer out)
public org.w3c.dom.Document parseDOM(InputStream in, OutputStream out)
答案 2 :(得分:0)
有点像JTidy解决方案:命名实体,如à
,在w3c.org的.dtd文件中定义,维护HTML <!DOCTYPE ...
。在本地复制它们并解析它们(简单)。然后,您可以立即用unicode字符串替换实体,或者创建数字实体。