/ / Úpravy HTML nahradením textu - analýza, html-analýza, jsoup

Úprava HTML nahradením textu - parsovanie, html-parsing, jep

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ď č. 1

Ak 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()));