我必须解析一些html并移除锚标记,但我需要保留锚标记的innerHTML
例如,如果我的html文本是:
String html = "<div> <p> some text <a href="#"> some link text </a> </p> </div>"
现在我可以解析上面的html并在jsoup中选择如下所示的标记,
Document doc = Jsoup.parse(inputHtml);
//this would give me all elements which have anchor tag
Elements elements = doc.select("a");
我可以通过,
element.remove()
但是它会从开始括号到结束括号删除完整的achor标记,并且内部html会丢失,如何才能保留只删除开始和结束标记的内部html。
另外,请注意:我知道有从元素中获取outerHTML()和innerHTML()的方法,但这些方法只给出了检索文本的方法,remove()方法删除标记的完整html。有没有什么方法可以让我只移除外部的标签而保留内部的HTML?
非常感谢你的帮助。
--拉杰什
使用unwrap,它保留内部html
doc.select("a").unwrap();
有关详细信息,请查看api-docs:
http://jsoup.org/apidocs/org/jsoup/select/elements.html#unwrap%28%29
问题内容: 我一直在使用JSoup解析歌词,到目前为止一直很棒,但是遇到了问题。 我可以用来返回所需节点的完整HTML,这样就保留了换行符: 但是,如您所见,保留HTML实体和标签具有不幸的副作用。 但是,如果使用,我可以获得更好的外观,并且没有标签和实体: 这有另一个不幸的副作用,即删除了换行符并压缩为单行。 在调用之前简单地从节点进行替换会产生相同的结果,而且该方法似乎将文本压缩到方法本身的一
问题内容: 我想删除标签之间的所有内容。输入示例可能是 输入: 输出将是: 基本上,我必须先删除整个区块 谢谢, 问题答案: 您最好对找到的 所有 元素进行迭代。所以你可以保证 a。)所有元素都被删除并且 b。)如果没有元素,那么什么也做不了。 例: 编辑: (除了我的评论) 当简单的 null /范围检查 在这里足够时,请不要使用异常处理: 代替:
我是jsoup的新手,在使用非HTML元素(脚本)时遇到了一些困难。我有以下HTML: 用于显示这一点的应用程序知道如何处理 和.语句。因此,当我简单地用jsoup解析文本时,<和>被编码,html被重新组织,所以它不能正确地执行或显示。例如: 我的最终目标是添加一些css和js包含,并修改几个元素属性。那真的不是问题,我已经解决了那么多了。问题是我不知道如何保留非HTML元素,并将格式与原始格式
问题内容: 这是我的HTML来源 这是我获取内容的Java程序,它过滤HTML标记 是否有使用Jsoup而不是使用Java而不是Regex解析HTML内容的简便方法 有没有办法只获取所需的内容。所以在这里我只需要内容“项目2-222” 问题答案: 尝试使用jsoup轻松解析: 要了解更多信息,请访问Jsoup Docs
我试图从这些div标签中获取文本,但是它们都不返回任何内容: HTML: 我想得到div类“消息”和h4标记和跨越“日期时间”中的文本,我试图: 和: 但是他们没有成功。
什么是正确的方法来删除只有HTML标签(保留所有自定义/未知的标签)与JSOUP(不是正则表达式)? 预期输入: 预期产出: 我尝试使用白名单清洁剂。none(),但它也会删除自定义标记。 我也尝试过: 但是它也删除了自定义标签。 这个答案对我不好,因为自定义标记的数量是无限的。