2011-01-30 6 views
1

я ищу HTML-парсер, который может искать и заменять теги анкерные какHTML анализатор для поиска и замены некоторых значений с помощью Java

ex 
<a href="/ima/index.php">example</a> 
to 
<a href="http://www.example.com/ima/index.php">example</a> 

Обновлено:

мой код с jsoup, но не работает

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

import com.google.common.collect.ImmutableList; 
import com.google.common.net.InternetDomainName; 

public class test { 
    public static void main(String args[]) throws IOException { 

      Document doc = Jsoup.connect("http://www.google.com").get(); 

      String html =doc.outerHtml().toString(); 

     // System.out.println(html); 

      Elements links = doc.select("a"); 



      for (Element link : links) { 
      String href=link.attr("href"); 
      if(href.startsWith("http://")) 
      { 

      } 
      else 
      { 
       html.replaceAll(href,"http://www.google.com"+href); 
      } 
      } 
      System.out.println(html); 
    } 

} 
+0

Не могли бы вы просто использовать '<БАЗА HREF =" HTTP: //www.example.com/'> 'для достижения этого результата? Или вы хотите переопределить содержимое сайта? –

+0

ya, который может это сделать .. Извините за глупый вопрос – bindhu

+0

Не глупо, просто переработано. :) –

ответ

1

Вы могли бы сделать это с String.replaceAll() и регулярного выражения, которые соответствовали по

<a href="/ 

, чтобы найти все относительные ссылки.

html = html.replaceAll("<a href=\"/", "<a href=\"http://www.google.com/\""); 
0

Это вопрос программирования? Если вы ищете готовый файл Java или что-то в этом роде, вы не в том месте. Если вы хотите написать что-то вроде этого, вы можете просто искать экземпляры текста, который начинается с a href=/" и заканчивается /">, а затем вы можете просто проверить значение href и, если это относительный путь (то есть, начинается с /), вы можете просто добавить другой текст в начало.

2
package javaapplication4; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

/** 
* 
* @author derek 
*/ 
public class Main 
{ 
    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) 
    { 
     try 
     { 
      Document document = Jsoup.connect("http://www.google.com").get(); 
      Elements elements = document.select("a"); 

      for (Element element : elements) 
      { 
       element.baseUri(); 
      } 
      System.out.println(document); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(System.err); 
     } 
    } 
} 
4

этот код изменяет относительные ссылки в документе для абсолютных ссылок код использует библиотеку jsoup

private void absoluteLinks(Document document, String baseUri) { 
    Elements links = document.select("a[href]"); 
    for (Element link : links) { 
     if (!link.attr("href").toLowerCase().startsWith("http://")) { 
      link.attr("href", baseUri+link.attr("href")); 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^