Snažím sa nahradiť text HTML z jedného jazyka na zodpovedajúci text v inom jazyku bez zmeny označenia a rozloženia stránky. Na analýzu HTML používam JSOUP knižnicu Java.
doc.title(MTClient.translate(doc.title()));
To by zaberalo názov stránky a nahradilo by ho výstupom preloženého textového reťazca prijatým MTClient.translate (text, ktorý sa má preložiť). To funguje dobre a nahradzujem názov.
Ale keď robím to isté na Prvkoch stránky HTML, pomocou nižšie uvedeného kódu:
Elements Nodes = doc.children();
for(Element node : Nodes){
node.text(MTClient.translate(node.text()));
}
Je to odstránenie celého rozloženia stránky a iba uloženie preloženého textu jednoducho na stránku.
Čítal som javadocs programu JSOUP, ktorý hovorí:
public Element text(String text)
Nastavte text tohto prvku. Akýkoľvek existujúci obsah (text alebo prvky) bude vymazaný.
A všetky čiastkové prvky sú odstránené.
Vyskúšal som aj HTMLPARSER lib v jave, ale zdá sa, že tento typ náhrady nepodporuje.
Ako nahradím text ??
Vopred ďakujem za pomoc.
odpovede:
0 pre odpoveď č. 1Ak chcete iba upraviť text, mali by ste dostať Textové uzly prvku () a nastaviť ich text. TextNodes nemá podradené prvky, takže ich nebudeš môcť nahradiť.
Elements nodes = doc.children();
for (Element node : nodes)
for (TextNode textNode : node.textNodes())
textNode.text(MTClient.translate(textNode.text()));