如何使用jsoup用span标签替换单词?
假设我有以下 html:
<html>
<head>
</head>
<body>
<div id="wrapper" >
<div class="s2">I am going <a title="some title" href="">by flying</a>
<p>mr tt</p>
</div>
</div>
</body>
</html>
文本节点中等于或大于 4 个字符的任何单词(例如单词“going”)将替换为 html 内容(不是文本)going< /code> 在原始 html 中,无需更改任何其他内容。
如果我尝试执行类似 element.html(replacement) 的操作,问题是如果让当前元素为
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在这种情况下,您必须按照 这个答案。这是使用 Jsoup API 的一种方法:
NodeTraversor
和NodeVisitor
允许您遍历 DOMNode.replaceWith(...)
允许替换 DOM 中的节点代码如下:
In this case you must traverse your document as suggested by this answer. Here's a way of doing it using Jsoup APIs:
NodeTraversor
andNodeVisitor
allow you to traverse the DOMNode.replaceWith(...)
allows for replacing a node in the DOMHere's the code:
我认为你需要遍历这棵树。元素上 text() 的结果将是该元素的所有文本,包括子元素内的文本。希望类似以下代码的内容对您有所帮助:
UPDATE
使用 Jonathan 的新 Jsoup List element.textNode() 方法并将其与 MarcoS 建议的 NodeTraversor/NodeVisitor 技术相结合更新(尽管我在遍历树时修改它 - 可能是一个坏主意):
I think you need to traverse the tree. The result of text() on an Element will be all of the Element's text including text within child elements. Hopefully something like the following code will be helpful to you:
UPDATE
Using Jonathan's new Jsoup List element.textNode() method and combining it with MarcoS's suggested NodeTraversor/NodeVisitor technique I came up with (although I am modifying the tree whilst traversing it - probably a bad idea):
我正在用 hello(span 标签) 替换单词 hello
I am replacing word hello with hello(span tag)