Html belgesi aşağıdaki gibidir :
<html>
<head>
<meta charset="utf-8">
<title>Bilgi Sayfası</title>
</head>
<body>
<h1 class="test">Ali</h1> eve <b>şimdi</b> geldi
<img src="a.gif" alt="Ali'nin Resmi">
</body>
</html>
Bu HTML içindeki metinler aşağıdaki gibi uygulama ile alınıp ekrana basılabilir:
import java.io.ByteArrayInputStream;
import java.io.IOException;
import net.htmlparser.jericho.Source;
import net.htmlparser.jericho.TextExtractor;
public class TextExtractorTest {
public static void main(String[] args) throws IOException {
String html1="<html><head><meta charset=\"utf-8\"/><title>Bilgi Sayfası</title></head>"
+ "<body><h1 class=\"test\">Ali</h1> eve <b>şimdi</b> geldi"
+ "<img src=\"a.gif\"></body></html>";
Source source=new Source(new ByteArrayInputStream(html1.getBytes("UTF-8")));
TextExtractor textExtractor=new TextExtractor(source);
System.out.println(textExtractor.toString());
}
}
Ekranda aşağıdaki gibi bir metin görülür:
Bilgi Sayfası Ali eve şimdi geldi
Dikkat edilirse title elementi içeriği de alınmıştır. Attribute'lerin içeriği (örneğin h1 elementinin class attribute'si) alınmamıştır.
Html belgesi aşağıdaki gibidir :
<html><head>
<meta charset="utf-8"/>
<title>Bilgi Sayfası</title>
</head>
<body><h1 class="test">Ali</h1> eve <b>şimdi</b> geldi
<img src="a.gif" alt="Ali'nin Resmi">
</body></html>
Bu HTML içindeki metinler aşağıdaki gibi uygulama ile alınıp ekrana basılabilir:
import java.io.ByteArrayInputStream;
import java.io.IOException;
import net.htmlparser.jericho.Attribute;
import net.htmlparser.jericho.Source;
import net.htmlparser.jericho.StartTag;
import net.htmlparser.jericho.TextExtractor;
public class TextExtractorAtributeTest {
public static void main(String[] args) throws IOException {
String html1="<html><head><meta charset=\"utf-8\"/><title>Bilgi Sayfası</title></head>"
+ "<body><h1 class=\"test\">Ali</h1> eve <b>şimdi</b> geldi"
+ "<img src=\"a.gif\" alt=\"Ali'nin Resmi\"></body></html>";
Source source=new Source(new ByteArrayInputStream(html1.getBytes("UTF-8")));
TextExtractor textExtractor=new TextExtractor(source){
public boolean includeAttribute(StartTag startTag, Attribute attribute) {
if(startTag.getName().equals("img") && attribute.getKey().equals("alt")){
return true;
}
return false;
}
};
textExtractor.setIncludeAttributes(true);
System.out.println(textExtractor.toString());
}
}
Ekranda aşağıdaki gibi bir metin görülür:
Bilgi Sayfası Ali eve şimdi geldi Ali'nin Resmi
Dikkat edilirse title elementinin değeri alınmıştır. includeAttribute method'u override edilerek, img elementinin, alt attributes'in değeri de alınmıştır. Bunun yapılabilmesi için setIncludeAttributes ile true değer atanmalıdır.