小编典典

一个不错的Java XML DOM实用程序

java

我发现自己一次又一次地写同样的冗长的DOM操作代码:

Element e1 = document.createElement("some-name");
e1.setAttribute("attr1", "val1");
e2.setAttribute("attr2", "val2");
document.appendChild(e1);

Element e2 = document.createElement("some-other-name");
e.appendChild(e2);

// Etc, the same for attributes and finding the nodes again:
Element e3 = (Element) document.getElementsByTagName("some-other-name").item(0);

现在,我不想一起切换架构,即我不想使用JDOM,JAXB或其他任何东西。只是Java的org.w3c.dom。原因是

  1. 这是关于一个古老而又大的遗留系统
  2. XML已在许多地方使用,并且XSLT进行了多次转换以获得XML,HTML和PDF输出
  3. 我只是在寻找方便,没有什么大变化。

我只是想知道是否有一个不错的包装库(例如,使用apache
commons或google),可以让我用类似jRTF的流畅样式来做这样的事情:

// create a wrapper around my DOM document and manipulate it:
// like in jRTF, this code would make use of static imports
dom(document).add(
  element("some-name")
    .attr("attr1", "val1")
    .attr("attr2", "val2")
    .add(element("some-other-name")),
  element("more-elements")
);

然后

Element e3 = dom(document).findOne("some-other-name");

我在这里最重要的要求是,我明确地想要在操作org.w3c.dom.Document

  1. 已经存在
  2. 很大
  3. 需要相当多的操纵

因此,将转换org.w3c.dom.Document为JDOM,dom4j等似乎是个坏主意。我更喜欢用适配器包装它。

如果不存在,我可能会自己动手,因为这种jRTF语法看起来非常不错!对于XML,由于节点类型很少,因此似乎很容易实现。从流畅的API角度来看,这可能与jquery一样强大!


阅读 212

收藏
2020-11-26

共1个答案

小编典典

我发现一些工具可以大致满足我在问题中的要求:

但是,与此同时,我更倾向于自己动手。我真的非常喜欢jquery,并且我认为jquery可以映射到Java fluent API:

http://www.jooq.org/products/jOOX

2020-11-26