`
jomper
  • 浏览: 37951 次
  • 性别: Icon_minigender_1
  • 来自: 湖北-武汉
社区版块
存档分类
最新评论

简单的小工具JomperXMLOperator

    博客分类:
  • Java
阅读更多
public void open(String url);
从url打开一个xml文档,当文档不存在时创建。

public void open(File);
从File打开一个xml文档,当文档不存在时创建。

public void add(Object o);
添加一个对象到root下

public void add(List<Object> entries);
添加一组对象到root下

public void delete(String xPath);
通过xpath删除一个或多个element

public List<Object> find(String xPath);
通过xpath找到一组元素.

public void update(String xPath,String value);
更新一个或一组属性的value

public void save();
保存当前文档

public void saveAs(String url);
保存当前文档到指定的url

public void setRootName(String rootName);
设置root元素的名字,如果不设置默认值为"root".而且这个方法一定要在open()方法之前才会有效.


测试类:
import java.util.List;
import java.util.ArrayList;

public class TestObject {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		addTest();
	}
	
	public static void deleteTest(){
		JomperXMLOperator jxo = new JomperXMLOperator();
		jxo.open("test.xml");
		jxo.delete("//Content[@contentLength='2']");
		jxo.save();
	}
	
	public static void updateTest(){
		JomperXMLOperator jxo = new JomperXMLOperator();
		jxo.open("test.xml");
		jxo.update("//Content[@contentLength='2']/@connectionType", "ok");
		jxo.save();
	}
	
	public static void findTest(){
		JomperXMLOperator jxo = new JomperXMLOperator();
		jxo.open("test.xml");
		List l = jxo.find("//Content[@contentLength='2']/@connectionType");
		System.out.println(l);//
		System.out.println(l.size());
	}
	
	public static void addTest(){
		Content c = new Content();
		c.setConnectionType("connectionType");
		c.setContentType("contentType");
		c.setContentDisposition("contentDisposition");
		c.setContentLength(1);
		c.setFileName("fileName");
		c.setKeepAlive("keepAlive");
		c.setServerDate("serverDate");
		c.setServerType("serverType");

		List l = new ArrayList();
		l.add(c);
		
		JomperXMLOperator jxo = new JomperXMLOperator();
		jxo.setRootName("Contents");
		jxo.open("test.xml");
		jxo.add(l);
		jxo.saveAs("ok.xml");
	}
}
  • src.zip (2.6 KB)
  • 描述: src下载
  • 下载次数: 64
分享到:
评论
1 楼 jomper 2007-11-14  
增加一个回调方法,可以识别出pojo 里的List并转化成子元素.如果add的o本身是List直接加到root下
public void add(Object o);


		List a = new ArrayList();
		TestA ta = new TestA();
		a.add(ta);
		
		List b = new ArrayList();
		TestB tb1 = new TestB();
		TestB tb2 = new TestB();
		b.add(tb1);
		b.add(tb2);
		ta.setB(b);
		
		List c1 = new ArrayList();
		List c2 = new ArrayList();
		TestC tc11 = new TestC();
		TestC tc12 = new TestC();
		TestC tc21 = new TestC();
		TestC tc22 = new TestC();
		tb1.setC(c1);
		tb2.setC(c2);
		c1.add(tc11);
		c1.add(tc12);
		c2.add(tc21);
		c2.add(tc22);
		
		JomperXMLOperator jxo = new JomperXMLOperator();
		jxo.open("rr1.xml");
		jxo.add(a);
		jxo.save();
		jxo.close();


xml doc 效果
<root>
<TestA>
  <TestB>
    <TestC/>
    <TestC/>
  </TestB>
  <TestB>
    <TestC/>
    <TestC/>
  </TestB>
</TestA>
</root>

相关推荐

Global site tag (gtag.js) - Google Analytics