dom4jでxmlをinsert,update,delete
dom4j使ってます。
insert
insertする場合って、elementとattributeを一から作ってたら、
要素が多い場合やネストが深い場合は、面倒なので、どうするのかなっと思ったら、
SAXReader reader = new SAXReader(); Document doc = reader.read( xmlPath ); Element re = doc.getRootElement(); // insert xml Document insertXml = DocumentHelper.parseText(str); re.add( insertXml.getRootElement() );
parseTextでいけそう。
update
update(replace)大変そうだと思ったら、
http://www.mail-archive.com/dom4j-user@lists.sourceforge.net/msg01735.html
// update xml String updateId = "id"; Element updateElement = new Element(); // old element Element oldElement = (Element)doc.selectSingleNode("//item[@id='" + updateId + "']"); if ( oldElement==null ) return; List<Node> contentOfParent = doc.getRootElement().content(); int index = contentOfParent.indexOf(oldElement); contentOfParent.set(index, updateElement);
これでいけそう。
delete
さて、delete。insert,updateの材料があれば、簡単。
Element re = doc.getRootElement(); re.remove(oldElement);
asでE4Xで、XML操作してると、Javaめんどくせーって思ったけど、
そうでもないのかな。でもやっぱりE4Xのほうが楽だけど。