首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于java HTML解析器/编辑器的建议

关于java HTML解析器/编辑器的建议
EN

Stack Overflow用户
提问于 2009-04-02 10:45:07
回答 5查看 2.1K关注 0票数 2

我一直遇到一个又一个问题,试图使用第三方HTML编辑器来做(我希望)是一个简单的操作。由于这些问题,我正在寻找替代HTML解析器的建议,我可以使用它来执行操作。

这就是我的情况,我的html中有span标记(使用ID属性来标识它们),我只是想根据客户端另一个区域的更新来替换它们的内容。例如:

代码语言:javascript
复制
<html>
    <body>
        <p>Hello <span id="1">name</span> you are <span id="2">age</span></p>
    </body>
</html>

我一直在尝试使用javax.swing.text中的HTMLDocument类,如下所示:

代码语言:javascript
复制
Element e;
e = doc.getElement(document.getDefaultRootElement(), Attribute.ID, "1");
document.setInnerHTML(element, "John");
e = doc.getElement(document.getDefaultRootElement(), Attribute.ID, "2");
document.setInnerHTML(element, "99");

但是返回的元素是叶元素,不允许设置innerHTML。不幸的是,文档、阅读器和解析器都是由第三方提供的&所以我不能修改它。

所以,我所希望的是,其他人也有类似的问题,可以推荐一个替代的库来做这件事?

先谢谢你,B。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-04-02 12:36:34

你真的不能用java.swing.text.HTMLDocument做到这一点吗?

我从来没有尝试过这样做,但是通过API读到了一些类似于

代码语言:javascript
复制
document.replace(e.getStartOffset(), e.getEndOffset()-e.getStartOffset(), "John", null)

而不是使用setInnerHtml()可以工作。

票数 2
EN

Stack Overflow用户

发布于 2009-04-02 10:57:05

你试过HTML Parser吗?它是一个健壮的、开源的Java HTML解析库。

票数 0
EN

Stack Overflow用户

发布于 2009-04-02 11:13:21

HTMLParser是一个很棒的库,但它是LGPL,可能不适合一些商业项目。

如果您的html格式良好,那么您可以使用Dom4J遍历节点,如果您的HTML格式不正确,您可以结合使用Tidy和Dom4J

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/709233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档