从字符串中删除HTML标记

时间:2012-05-21 03:11:47

标签: android html parsing

我有一个HTML字符串:

<span class=thisword>anh</span><br />
-grand frère</span><br />
-cousin (fils d'un grand frère ou d'une grande soeur du père ou de la mère)</span><br />
-(nom générique désignant un homme encore jeune)</span><br />

我想在其中获取字符串。 我做了以下事情:

Elements ed=docu.getElementsByTag("span");
for(Element e: ed)
{
    System.out.println(removeHTML(e.toString()));
    // removeHTML is method remove tags in HTML receive
}

它只显示字符串

anh

我希望它显示

anh -grand frère -cousin (fils d'un grand frère ou d'une grande soeur du père ou de la mère) -(nom générique désignant un homme encore jeune)

但我没有取得任何成功。你能救我吗?

3 个答案:

答案 0 :(得分:1)

HTML无效......你不能指望任何东西。

你的程序可能输出四个字符串,一个带文本,另外三个为空。您的HTML被解释为这样(至少对大多数浏览器而言):

<span class=thisword>anh</span><br />
-grand frère<span></span><br />
-cousin (fils d'un grand frère ou d'une grande soeur du père ou de la mère)<span></span><br />
-(nom générique désignant un homme encore jeune)<span></span><br />

你没有打开你应该关闭的所有其他跨度。如果您希望包含所有内容,则需要在每行文本之前开始新的跨度:

<span class=thisword>anh</span><br />
<span>-grand frère</span><br />
<span>-cousin (fils d'un grand frère ou d'une grande soeur du père ou de la mère)</span><br />
<span>-(nom générique désignant un homme encore jeune)</span><br />

答案 1 :(得分:0)

Html结构似乎不正确。您有一个开口跨度和四个关闭跨度。这可能是一个原因。

答案 2 :(得分:0)

正确的HTML应该是:

<span class="thisword">anh</span><br />
<span>-grand frère</span><br />
<span>-cousin (fils d'un grand frère ou d'une grande soeur du père ou de la mère)</span><br />
<span>-(nom générique désignant un homme encore jeune)</span><br />

你应该注意这些:

  • 课程应以引号括起。

  • 应在相应的<p><div>内关闭并打开每个块。 <span>应在其中包含匹配的</span>

  • 跨度不应相互重叠。