Estoy trabajando en una aplicación de Android, que carga una página HTML y la muestra en una vista web. El problema es que quiero agregar mi css personalizado (el HTML cargado no tiene ningún CSS o enlace a un css). ¿Cómo agrego el CSS personalizado al código HTML usando jsoup? No puedo modificar el html. ¿Y cómo puede la vista web abrirla después? GraciasAgregar css personalizado al código html con jsoup
Respuesta
varias maneras. Puede usar Element#append()
para agregar algo de HTML al elemento.
Document document = Jsoup.connect(url).get();
Element head = document.head();
head.append("<link rel=\"stylesheet\" href=\"http://example.com/your.css\">");
O bien, use Element#attr(name, value)
para agregar atributos a los elementos existentes. Aquí hay un ejemplo que agrega style="color:pink;"
a todos los enlaces.
Document document = Jsoup.connect(url).get();
Elements links = document.select("a");
links.attr("style", "color:pink;");
De cualquier manera, después de la modificación, obtenga la cadena HTML final por Document#html()
.
String html = document.html();
escribirlo en un archivo por PrintWriter#write()
(con el juego de caracteres derecha).
String charset = Jsoup.connect(url).response().charset();
// ...
Writer writer = new PrintWriter("/file.html", charset);
writer.write(html);
writer.close();
Finalmente, ábralo en la vista web. Como no puedo decirlo desde el principio, aquí hay un enlace con un ejemplo que creo que es útil: WebViewDemo.java. Por cierto, encontré el enlace en this blog (que a su vez encontré en Google).
¿Cuál es el juego de caracteres correcto? ¿Qué tengo que poner ahí "// ..."? – PixelPW
El juego de caracteres correcto es 'Jsoup.connect (url) .response(). Charset();'. El '// ...' es solo el código que necesitas para obtener el 'html'. – BalusC
Gracias pero cuando pongo esto a Eclipse que dice: "Agregar lanza decleration" ... public void main (String ... args) throws FileNotFoundException, UnsupportedEncodingException {try { ... Lo que tengo ¿que hacer? – PixelPW
Probablemente la manera más fácil es buscar y reemplazar en el texto HTML para insertar sus estilos personalizados, antes de cargarlo en su WebView
. Hago esto en mi aplicación BBC News para cambiar ligeramente la página del artículo de noticias. Mi código es el siguiente:.
text = text.replace("</head>",
"<style>h1 {font-size: x-large;} h1, div.date, div.storybody, img {margin:4px; padding:4px; line-height:1.25;}</style></head>");
ver cómo buscar y reemplazar en la etiqueta final head
(incluyendo mi propia </head>
etiqueta en el segmento reemplazado Esto asegura que el nuevo fragmento va en el ritmo adecuado en la página.
Hay aa pocas maneras de incluir la CAC en html
Tis yo uso si lo tiene almacenado como un archivo externo:
<head><link rel="stylesheet" type="text/css" href="mystyle.css" /></head>
Si usted quiere ponerlo stight i el archivo html:
<head>
<style type="text/css">
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/back40.gif");}
</style>
</head>
O si lo wnat modificar una etiqueta de Singel:
<p style="color:sienna;margin-left:20px">This is a paragraph.</p>
* Editar
cualquiera de los ejemplos Thees shouldn no tiene ningún problema con la visualización.
Ref: W3 Schools CSS
El problema es que cargo el formulario HTML de una página web, por lo que no puedo cambiar el HTML. Quiero agregar código con jsoup y luego cargar mi propio css. – PixelPW
Veo, su pregunta fue engañosa, sonaba como si tuviera control sobre el html. Edité la pregunta para señalar a los demás de la manera correcta. Yo mismo no tengo ningún exp. whit jsoup – KilledKenny
- 1. Renderizar HTML en un WebView con CSS personalizado
- 2. Analizando una enorme secuencia HTML con Jsoup
- 3. Reemplazar etiquetas HTML usando jsoup
- 4. Cómo agregar HTML personalizado a wp_nav_menu?
- 5. Agregar imágenes al html con javascript
- 6. Procastinación al pasar del código C# a html/css/jquery
- 7. ¿Cómo agregar HTML personalizado al final de la vista con atributos en ASP.NET MVC?
- 8. ¿Agregar propiedades al control WPF personalizado?
- 9. ¿Cómo puedo atravesar el árbol HTML con Jsoup?
- 10. Analizar HTML con jsoup y conservar el contenido original
- 11. Agregar encabezado personalizado al archivo de Excel
- 12. ¿Hay un analizador de HTML parecido a jsoup para PHP?
- 13. Borde gráfico personalizado en DIV con CSS
- 14. Cómo buscar comentarios ("<!-- -->") con Jsoup?
- 15. Agregar imágenes al código fuente
- 16. ¿Cómo puedo agregar mi formulario personalizado al bloque personalizado en mi módulo personalizado
- 17. ¿Cómo agregar el código JS al formulario de entidad?
- 18. Agregar contenido HTML al documento asociado con JTextPane
- 19. HTML/CSS - Móvil ampliado al inicio
- 20. Delphi con interfaz HTML/CSS
- 21. Agregar tipo mime al enlace HTML
- 22. ¿Cómo agregar espacio de nombre personalizado al elemento HTML en JSF?
- 23. CSS personalizado JQuery ui-dialog
- 24. ¿Hay algo más rápido que Jsoup para raspar HTML?
- 25. ¿Cómo cargo un archivo html local en Jsoup?
- 26. Cómo agregar análisis de código personalizado en ReSharper
- 27. Agregar un elemento al DOM con JavaScript
- 28. Spring HTML personalizado
- 29. Agregar un initWith personalizado?
- 30. Magento personalizado agregar al carrito proceso no funciona
No es una pregunta idéntica. No puedo cargarlo con loadDataWithBaseURL porque no hay ningún enlace a un ccs en el HTML. Entonces no puedo referirme a un CSS en la aplicación local. – PixelPW