0

指定されたURLからHTMLを取得し、ナビゲーションメニューのhtmlを見つけて、それを文字列に入れるHTMLパーサーを作成しています。文字列にコピーされるHTMLのURLには、URLの一部(「www.stackoverflow.com」の部分)を追加する必要があります。文字列内の既存のURLを検索し、不足している部分を追加して機能させるにはどうすればよいですか。

のURLはString次の形式です。

<a href="/qestions/11744851.cfm">

そして私はそれらを次の形で作る必要があります:

<a href="www.stackoverflow.com/questions/11744851.cfm">
4

2 に答える 2

1

XHTMLが有効なXMLである場合、最も簡単な方法は、それをXMLとして解析し、XPathを使用することです(たとえば、/ body / div / a @ href、ここで/ body /divはHTMLのメニューセクションへのパスです。 HTMLParser(http://htmlparser.sourceforge.net/)を試してみてください(ページによると、「リンク抽出、Webページのクロールまたは電子メールアドレスの収集」がありますが、私は一度も行ったことがありません。使用したので、あまり役に立ちません)。一方、HTMLが有効ではない場合は、http://ccil.org/~cowan/XML/tagsoup/を使用することをお勧めします。私たちが試したWebサイトでは、かなりうまくいったとは限りません。

編集:不足している部分の追加は、興味深い部分を見つけた後、単純な連結を使用して行うことができます

于 2012-07-31T16:43:32.973 に答える
1

ReplaceAll()次のメソッドでこの正規表現を使用してみてください。

str = subString.replaceAll("<a href=\"(.*)\">", "<a href=\"http://www.stackoverflow/$1\">");
于 2012-07-31T17:15:20.450 に答える