首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java语言编程创建W3C DOM的有效方法是什么?

用Java语言编程创建W3C DOM的有效方法是什么?
EN

Stack Overflow用户
提问于 2008-12-04 17:40:10
回答 4查看 1.4K关注 0票数 5

尽管我知道如何使用DOM漫长而艰巨地构建一个DOM,但我想做一些比这更好的事情。有没有一种很好的、整洁的方法来构建分层文档,比如说,使用类似Hibernate的标准API的API?这样我就可以像这样将调用链接在一起,例如:

代码语言:javascript
复制
Document doc = createDocumentSomehow ();
doc.createElement ("root").createElements (
    doc.newElement ("subnode")
        .createElement ("sub-subnode")
            .setText("some element text")
            .addAttribute ("attr-name","attr-value"),
    doc.newElement ("other_subnode"));

理想情况下,这将导致XML如下所示:

代码语言:javascript
复制
<root>
  <subnode>
    <sub-subnode attr-name = "attr-value">some element text</sub-subnode>
  <other_subnode />
</root>

基本上,我希望Java本身的长度不超过我生成的文档的四倍。它存在吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-12-04 17:48:58

您肯定想要使用JDomhttp://www.jdom.org/docs/apidocs/。它可以像您所描述的那样使用,因为许多方法都返回对this的引用。下面是我们的老师为我们展示的XML文档的一些代码。还没有测试过,但是老师很棒,我相信他:

代码语言:javascript
复制
<adressbuch aktualisiert="1.4.2008">
    <adresse>
        <vorname> Hugo </vorname>
        <nachname> Meier </nachname>
        <telefon typ="mobil">0160/987654 </telefon>
    </adresse>
</adressbuch>

代码:

代码语言:javascript
复制
new Document(
     new Element ("adressbuch")
     .setAttribute("aktualisiert", "1.4.2008")
     .addContent(
         (Element) new Element("adresse")
         .addContent(
                     (Element) new Element("vorname")
                     .addContent("Hugo"))
         .addContent(
                     (Element) new Element("nachname")
                     .addContent("Meier"))
         .addContent(
                     (Element) new Element("telefon")
                     .setAttribute("typ", "mobil")
                     .addContent("0160/987654"))));

从API手册中看,他所做的角色转换并不是必须的。也许他这么做只是出于文档目的。

票数 4
EN

Stack Overflow用户

发布于 2008-12-04 17:43:42

我强烈推荐埃利奥特·拉斯蒂·哈罗德的XOM应用编程接口。

它可以与XOM互操作,因为您可以在W3C和DOM之间进行转换。API保证任何时候都有一个结构良好的结构。它是高性能的,健壮的,遵循一致的设计原则。

票数 2
EN

Stack Overflow用户

发布于 2008-12-04 18:11:05

请尝试查看DOM4J的Quick Start指南。这也使得XML的输出变得非常容易。我已经包含了一个相关的代码片段:

代码语言:javascript
复制
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class Foo {

    public Document createDocument() {
        Document document = DocumentHelper.createDocument();
        Element root = document.addElement( "root" );

        Element author1 = root.addElement( "author" )
            .addAttribute( "name", "James" )
            .addAttribute( "location", "UK" )
            .addText( "James Strachan" );

        Element author2 = root.addElement( "author" )
            .addAttribute( "name", "Bob" )
            .addAttribute( "location", "US" )
            .addText( "Bob McWhirter" );

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

https://stackoverflow.com/questions/341474

复制
相关文章

相似问题

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