在java中,如何在第3方工具返回的DOM中创建我自己的xml子类元素
所以我使用 HTMLCleaner 它返回 org.w3c.dom 兼容的 DOM。 现在,我想将我自己的子类 Elements(在 dom 之外实现附加功能)插入到这个 dom 树中。 这可能吗?
如果您使用 Document.createElement(),则不能说您希望它创建元素的实现。 理想情况下,我不希望我的类实现 Element,而 Node 必须手动完成所有已完成的工作。 我认为我可以从 Xerces 继承 ElementImpl 并可能将其添加到我拥有的 DOM 中。 然而,Xerces 希望被创建为实现 CoreDocumentImpl 等的 DOM。
从优雅的角度来看,这将是一个遗憾。 如果我必须使用普通元素并设法通过属性/名称等来识别它们,因为每个元素都需要指向索引中的特定位置。
So I'm using HTMLCleaner which returns a org.w3c.dom compatible DOM. Now, I want to insert my own subclassed Elements (which implement additional functionality outside the dom) into this dom tree. Is this possible?
If you use the Document.createElement(), you can't say that you want it to create your implementation of an element. Ideally I don't want my class to implement Element and Node have to manually do all the work that has already been done. I thought that I could subclass ElementImpl from Xerces and potentially add it to the DOM I have. However Xerces expects to be created into DOMs that implement CoreDocumentImpl etc.
It would be a pity, from an elegance point of view. If I had to use plain Element and manage to identify them by their attributes/names etc, as each one needs to point to particular positions in an index.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
DOM 并不是最漂亮的 API。 如果您想要简单性,请使用 DOM4J :
- 将 DOM 文档包装成 DOM4J 文档
- 使用 DOM4J 而不是 DOM 构建现有文档或将其包装在 DOM4J 文档中
DOM is not the prettiest API to work with. If you want simplicity, use DOM4J :
- Wrap the DOM document into a DOM4J document
- Use DOM4J instead of DOM to build the existing document or wrap it in a DOM4J document
如果可能的话,我建议放弃 Xerces 而使用 JAXB。 这是一个更加友好的 API。
If possible, I'd recommend ditching Xerces for JAXB. It's a much friendlier API.