Java 如何在html/文本内容中获取文本?
大家好 我的html/文本类似于:Java 如何在html/文本内容中获取文本?,java,html-parsing,jsoup,Java,Html Parsing,Jsoup,大家好 我的html/文本类似于: <html><head><style type="text/css"> </style></head> <body><div style="font-family:times new roman,new york,times,serif;font-size:14pt">first text<br><div><br></div>&l
<html><head><style type="text/css">
</style></head>
<body><div style="font-family:times new roman,new york,times,serif;font-size:14pt">first text<br><div><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 14pt;"><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">one:</span></b> second text<br><b><span style="font-weight: bold;">two:</span></b> third text<br><b><span style="font-weight: bold;">three:</span></b> fourth text<br><b><span style="font-weight: bold;">five:</span></b> fifth text<br></font><br>
第一个文本
第一个:第二个文本
第二个:第三个文本
第三个:第四个文本
第五个:第五个文本
我想在上面的html内容中提取名为“FirstText”的文本
注意:此html内容不是静态的,而是动态的,因此一般的想法是在html文本中获取第一个纯文本如果您想要一些相当简单的内容,请查看my,它是为在Java ME平台上使用而设计的,因此几乎可以在任何地方使用。没有什么特别的,只是一种将文本流转换为标记和非标记的简单方法。延迟加载属性,如果基本上忽略标记,那么使用起来非常快。您可以使用SAX样式的HTML解析器,如 为此,使用扩展的
DefaultHandler
初始化解析器,以检测何时第一次调用characters(…)
方法并保存结果
查看如何设置解析器的一些指导。您标记了,因此您正在使用。这已经是一个不错的选择;)
以下是使用Jsoup的方法:
String html = "<html><head><style type=\"text/css\"></style></head><body><div style=\"font-family:times new roman,new york,times,serif;font-size:14pt\">first text<br><div><br></div><div style=\"font-family: times new roman,new york,times,serif; font-size: 14pt;\"><br><div style=\"font-family: times new roman,new york,times,serif; font-size: 12pt;\"><font size=\"2\" face=\"Tahoma\"><hr size=\"1\"><b><span style=\"font-weight: bold;\">one:</span></b> second text<br><b><span style=\"font-weight: bold;\">two:</span></b> third text<br><b><span style=\"font-weight: bold;\">three:</span></b> fourth text<br><b><span style=\"font-weight: bold;\">five:</span></b> fifth text<br></font><br>";
Document document = Jsoup.parse(html);
String firstText = document.select(":containsOwn(text)").first().ownText();
System.out.println(firstText);
String html=“第一个文本
第一个:第二个文本
第二个:第三个文本
第三个:第四个文本
第五个:第五个文本
”;
documentdocument=Jsoup.parse(html);
字符串firstText=document.select(“:containsOwn(text)”).first().ownText();
System.out.println(firstText);
结果:
第一个文本
另见:
@BalusC,我还想提一下我想要得到的文本不是静态的,所以我想得到第一个文本,它可能是任何东西,没有特定的模式。你可以使用
元素text()
,元素html()
,元素outerHtml()
,看看有没有合适的。有没有办法获得第三个div的索引?