3
javaのHTMLEditorKitの助けを借りてTITLE属性を取得したいですか? これは私が書いたものですが、それは "null"を返すでしょうし、Eclipseのインスペクタはそれほど助けにはならないのです!HTMLEditorKitの助けを借りてHTMLのTITLEを取得する方法
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.parser.ParserDelegator;
public class testHTML
{
public static void main(String args[]) throws Exception
{
Reader reader = new FileReader("C:\\wamp\\www\\t\\index.html");
new ParserDelegator().parse(reader, new LinkPage(), true);
}
}
class LinkPage extends HTMLEditorKit.ParserCallback
{
public void handleSimpleTag(HTML.Tag tag,
MutableAttributeSet attributes, int pos) {
if (tag == HTML.Tag.TITLE)
{
System.out.println(attributes.getAttribute(HTML.Attribute.TITLE));
}
}
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
{
// if (t == HTML.Tag.A)
// {
// //System.out.println("<BR>");
//
// }
// if(t == HTML.Tag.TITLE)
// {
// System.out.println(t.toString());
// System.out.println(t.TITLE);
// System.out.println();
// String text = (String)a.getAttribute(HTML.Attribute.TITLE);
// Object o = a.getAttribute(HTML.Attribute.TITLE);
// System.out.println(a);
// System.out.println(o);
// System.out.println(text);
// }
//
handleSimpleTag(t, a, pos);
}
}
とHTMLの内容は次のとおりです。
<html>
<head>
<title>test</title>
</head>
<body>
test
<a href="http://localhost/t/1.html">link1</a>
sdf
<a href="http://localhost/t/2.html">link2</a>
sdf
<a href="http://localhost/t/1.html">link3</a>
sdf
<a href="http://localhost/t/2.html">link3</a>
</body>
</html>
PS:私はXPATH、REGEXかつ簡単な方法でHTMLのattrinutesを取得するための任意の他のサードパーティ製のコンポーネントの承知していますが、私は勉強したいですハードな方法。
SSCCEを投稿できますか? – StanislavL
編集中.......... –