深圳java培训:构建xml文档--【千锋】-创新互联
深圳java培训:构建xml文档--【千锋】
为企业提供成都网站建设、网站制作、网站优化、成都全网营销推广、竞价托管、品牌运营等营销获客服务。创新互联拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!我需要从Java对象层次结构构建一个XML文档。Java类和XML格式都是固定的。所以我不能使用像 XStream 这样的XML序列化器:它将XML格式基于Java类。同样,像 JAXB 这样的Java XML绑定技术也不行,因为它从XML模式创建Java类[ed:但见下文]。我需要一个手动方法。
低技术的StringBuilder路由会导致易碎和错误的代码(至少对我来说!)。
像 JAXP 或 JDOM 这样的API可以产生更健壮的代码,但这些代码非常冗长。
Groovy 有一个优雅的 MarkupBuilder :
def writer = new StringWriter ()
def xml = new MarkupBuilder ( writer )
xml . records () {
car ( name : 'HSV Maloo' , make : 'Holden' , year : 2006 ) {
country ( 'Australia' )
record ( type : 'speed' , 'Production Pickup Truck with speed of 271kph' )
}
car ( name : 'P50' , make : 'Peel' , year : 1962 ) {
country ( 'Isle of Man' )
record ( type : 'size' , 'Smallest Street-Legal Car at 99cm wide and 59 kg' )
}}
其他语言(如 Ruby )有更好的语言,尽管我想留在纯Java中。似乎有一些Java的新的XML构建器,例如 practicalxml 和James Murty的 xmlbuilder 。
在Java中构建XML文档的更优雅的方法是什么?
概要:
Jon Doe建议 dom4j 和 jdom 。
CurtainDog推荐使用JAXB,而jherico则告诉我这是一个有针对性的建议:然后你可以使用Dozer来映射我当前的JavaBeans和JAXB JavaBeans。
thaggie建议 JIBX 并同意CurtainDog和jherico绑定技术实际上是实用的。
StaxMan推荐 StaxMate 。
在我看过的东西中,practicalxml和James Murty的xmlbuilder似乎是最简洁的构建器,虽然比较新颖。像JAXB这样的绑定技术似乎提供了额外的安全/自动化。在主流选择中, dom4j 看起来很体面,但仍然有点冗长。它提供了一个“流畅的接口”(mutators返回对变异对象的引用,以便它们可以链接在一起),我喜欢它:
public Document createDocument () {
Document document = DocumentHelper . createDocument ();
Element root = document . addElement ( "root" );
Element author2 = root . addElement ( "author" )
. addAttribute ( "name" , "Toby" )
. addAttribute ( "location" , "Germany" )
. addText ( "Tobias Rademacher" );
Element author1 = root . addElement ( "author" )
. addAttribute ( "name" , "James" )
. addAttribute ( "location" , "UK" )
. addText ( "James Strachan" );
return document ;}
为了简明起见,你可以在这个API上封装一个精简的外观,为这些方法中的一些提供简洁的同义词(例如,attr()而不是addAttribute())。
网页题目:深圳java培训:构建xml文档--【千锋】-创新互联
转载来于:http://cdiso.cn/article/djipcp.html