2013-06-20 95 views
0

文本替换所有可见的文字我需要把每一个可见的HTML浏览器字壳这样的:如何通过标签

来源:

<p><strong> My source sentence</strong></p> 

目标:

<p><strong><span>My </span><span>source </span><span>sentence</span></strong></p> 

但是请勿触摸任何标签,javascript等。

我该怎么做?

+1

您可以提取文本,然后对每个单词使用'replace',并用您自己想要的标签替换它。即'str = str.replace(str,“”+ str +“);'。 – Maroun

+0

我试过这种方法(用Jsoup),但如果我在文本中有一个字母”a“,则替换整个文档中的”a“崩溃的文件,我需要的方式来替换只是文本的一面,这是我的问题 – Aleksandr

回答

0

没有不敬,但这看起来像一个愚蠢的事情。但无论如何,您可以尝试解析HTML(如解析XML,使用库),然后用新行替换每一行。

+0

是的,我通过解析与jsoup文本但是如何正确地插入目标文本? – Aleksandr

+0

我没有使用解析器是诚实的,但一般情况下,你想遍历所有的内容,并为每个有价值的内容,采取字符串,在空格分开,添加围绕每个单词的两个和,然后重新放回它。 – LuckyMe

0

如果您的源代码是有效的XML,那么编写一个SAX处理程序来读取源代码并按照您的要求输出它应该相当容易,请查看tutorial

本质上,每次遇到元素时,都只是将元素输出到输出流。每次遇到一些文本时,只需使用正则表达式(或类似的)将其分割成您想要的部分,然后将每个部分包含在span元素中。这看起来像是一件非常奇怪的事情。

如果您的输入源不是有效的XML(如果它的HTML包含所有可以被破坏的各种东西),那么除非您可以先将源代码转换为有效的XML,否则将会变得更加困难。

+0

它是html 。表格,图片等 – Aleksandr

+0

在这种情况下,请看这个库:http://htmlcleaner.sourceforge.net/它会清理你将要加载和处理的HTML,但你必须记住它不能创造奇迹,你可能会打到无法正确加载的文件。 – wobblycogs