私はhtmlファイルを持っています。2 つのアンカー間の「テーブル」コンテンツを抽出しようとしています。
サンプルの html コンテンツは次のとおりです。
<HTML>
<HEAD>
<TITLE>
Test Doc
</TITLE>
</HEAD>
<BODY LINK=#000000 VLINK=#000000 ALINK=#990000>
<A NAME = "linkTab0000"></A>
<TABLE CELLPADING=1 BORDER=2 WIDTH=100%>
<TR>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#a6caf0>
<B><FONT SIZE=3 COLOR=#000000 FACE='HP Simplified'>Test Entity</FONT></B></TD>
</TR>
</TABLE><TABLE CELLPADING=2 BORDER=2 WIDTH=100%>
<TR>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#64b1ff WIDTH=200>
<B><FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>Name</FONT></B></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#64b1ff WIDTH=200>
<B><FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>Datatype</FONT></B></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#64b1ff WIDTH=200>
<B><FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>Definition</FONT></B></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#64b1ff WIDTH=200>
<B><FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>Note</FONT></B></TD>
</TR>
<TR>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#ffffff>
<FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>test</FONT></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#ffffff>
<FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>test</FONT></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#ffffff>
<FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>test</FONT></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#ffffff>
<FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'> </FONT></TD>
</TR>
</TABLE>
<A NAME = "linkTab0001"></A>
<TABLE CELLPADING=1 BORDER=2 WIDTH=100%>
<TR>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#a6caf0>
<B><FONT SIZE=3 COLOR=#000000 FACE='HP Simplified'>Test Entity</FONT></B></TD>
</TR>
</TABLE><TABLE CELLPADING=2 BORDER=2 WIDTH=100%>
<TR>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#64b1ff WIDTH=200>
<B><FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>Name</FONT></B></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#64b1ff WIDTH=200>
<B><FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>Datatype</FONT></B></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#64b1ff WIDTH=200>
<B><FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>Definition</FONT></B></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#64b1ff WIDTH=200>
<B><FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>Note</FONT></B></TD>
</TR>
<TR>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#ffffff>
<FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>test</FONT></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#ffffff>
<FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>CHAR(18)</FONT></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#ffffff>
<FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'>test</FONT></TD>
<TD ALIGN=LEFT VALIGN=TOP BGCOLOR=#ffffff>
<FONT SIZE=2 COLOR=#000000 FACE='HP Simplified'> </FONT></TD>
</TR>
</TABLE>
「 」要素の間の「TABLE」要素を抽出したい<A NAME = "linkTAB.....
。
以下は私が使用しているコードです:
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
System.out.println(doc.html());
String inputStr = doc.html();
String link = "<a name = "+"linkTab";
Pattern p = Pattern.compile("(\\b^"+link+"\\b)(.*?)(\\^"+link+"\\b)");
Matcher m = p.matcher(inputStr);
List<String> matches = new ArrayList<String>();
while (m.find()) {
matches.add(m.group());
}
bufferedreader も使用してみましたが、 String link = " を無視します
提案があれば教えてください。
ありがとう