Je travaille sur une application Android, qui charge une page HTML et l'affiche dans un affichage Web. Le problème est que je veux ajouter mon CSS personnalisé (le HTML chargé n'a pas de CSS ou de lien vers un CSS). Comment puis-je ajouter le CSS personnalisé au code HTML en utilisant jsoup? Je ne peux pas modifier le code HTML. Et comment le webview peut-il l'ouvrir ensuite? MerciAjouter un code CSS personnalisé au code html avec jsoup
Répondre
Plusieurs façons. Vous pouvez utiliser Element#append()
pour ajouter du code HTML à l'élément.
Document document = Jsoup.connect(url).get();
Element head = document.head();
head.append("<link rel=\"stylesheet\" href=\"http://example.com/your.css\">");
Ou d'utiliser Element#attr(name, value)
pour ajouter des attributs à des éléments existants. Voici un exemple qui ajoute style="color:pink;"
à tous les liens.
Document document = Jsoup.connect(url).get();
Elements links = document.select("a");
links.attr("style", "color:pink;");
De toute façon, après modification, obtenez la chaîne HTML finale par Document#html()
.
String html = document.html();
Ecrire à déposer par PrintWriter#write()
(avec le droit charset).
String charset = Jsoup.connect(url).response().charset();
// ...
Writer writer = new PrintWriter("/file.html", charset);
writer.write(html);
writer.close();
Enfin l'ouvrir dans le webview. Puisque je ne peux pas le dire du haut de la tête, voici juste un lien avec un exemple qui je pense est utile: WebViewDemo.java. J'ai trouvé le lien sur this blog en passant (que j'ai trouvé à son tour par Google).
Quel est le bon charset? Ce que je dois y mettre "// ..."? – PixelPW
Le bon jeu de caractères est le 'Jsoup.connect (url) .response(). Charset();'. Le '// ...' est juste le code dont vous avez besoin pour obtenir le 'html'. – BalusC
Merci, mais quand je mets ce pour éclipser il est dit: "Ajouter lance decleration" ... void main (String publiques ... args) throws FileNotFoundException , UnsupportedEncodingException { try {... Ce que je faire? – PixelPW
Probablement le moyen le plus simple est de rechercher et de remplacer sur le texte HTML pour insérer vos styles personnalisés, avant de le charger dans votre WebView
. Je fais cela dans mon application BBC News pour relooker légèrement la page d'article. Mon code ressemble à ceci:.
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>");
Voyez comment je recherche et de remplacement sur l'étiquette fin head
(y compris ma propre étiquette </head>
dans le segment remplacé Cela garantit que le nouvel extrait va dans le bon rythme sur la page.
il aa quelques façons d'inclure ccs en html
Tis j'utiliser si vous l'avez stocké comme fichier externe:
<head><link rel="stylesheet" type="text/css" href="mystyle.css" /></head>
Si vous voulez mettre stight i le fichier html:
<head>
<style type="text/css">
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/back40.gif");}
</style>
</head>
Ou si vous WNAT de modifier une balise Singel:
<p style="color:sienna;margin-left:20px">This is a paragraph.</p>
* Modifier
Tout d'exemples de thees shouldn N'avoir aucun problème à afficher.
Ref: W3 Schools CSS
Le problème est que je charge le formulaire HTML une page Web, donc je ne peux pas changer le HTML. Je veux ajouter du code avec jsoup et charger mon propre CSS. – PixelPW
Je vois, Votre question était trompeuse sonnait comme si vous avez le contrôle sur le code HTML. J'ai édité la question pour pointer les autres dans le bon sens. Je n'ai moi-même aucune exp. whit jsoup – KilledKenny
- 1. Pourquoi JSoup parse mal mon code HTML?
- 2. Tidier Code HTML/CSS
- 3. Utilisez Jquery pour ajouter du code HTML avec css?
- 4. Code Igniter ajouter css
- 5. Html Dom avec jsoup
- 6. Ajouter un nouveau code XML Marquez le code (PHP, HTML)
- 7. Peupler un élément ListView personnalisé avec JSOUP
- 8. Ajout d'images au code HTML avec javascript
- 9. Envoyer un code HTML avec une mauvaise structure Css
- 10. comment définir le code html + css ajouter dans l'iPhone
- 11. comment utiliser jsoup pour ranger le code html
- 12. WPF ajouter du code C# au customcontrol
- 13. Comment convertir le code multiligne html au code html monoligne
- 14. changement CSS avec JSOUP Java
- 15. Lier VBA au code HTML
- 16. formatage de code CSS personnalisé dans Aptana
- 17. appliquer le code css au jquery
- 18. Code HTML au format HTML dans Textview
- 19. Zend_Form: Comment ajouter HTML personnalisé
- 20. Le langage HTML correspond au code HTML
- 21. Remplacement CSS CSS ExtJS 4 pour le code HTML personnalisé dans les composants
- 22. Ajouter CSS dans ce code plugin Joomla
- 23. Transmettre le code javascript au contrôle personnalisé
- 24. comment ajouter du code css sur jquery?
- 25. Code HTML intègrent dans le code HTML
- 26. Charger un fichier HTML sur WebView avec CSS personnalisé
- 27. Comment ajouter un code de traitement personnalisé dans wordpress?
- 28. Cython liant au code C personnalisé
- 29. Code embellisseur pour HTML/CSS/JavaScript?
- 30. Problèmes pour visualiser CSS sur code HTML
Ce n'est pas une question identique. Je ne peux pas le charger avec loadDataWithBaseURL car il n'y a pas de lien vers un ccs dans le HTML. Donc, je ne peux pas faire référence à un CSS dans l'application locale. – PixelPW