Dom4j 使用方法(一)

public static void main(String[] args) {

		String path = Test01.class.getResource("").getFile().substring(1);
		
		createXMLFile(path + "test_create.xml");
		System.out.println("write xml finished!");
		modiXMLFile(path + "test_create.xml", path + "test_update.xml");
		System.out.println("modify xml finished!");
	}

	public static int createXMLFile(String filename) {
		int returnValue = 0;
		Document document = DocumentHelper.createDocument();
		Element booksElement = document.addElement("books");
		booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");

		// book1
		Element bookElement = booksElement.addElement("book");
		bookElement.addAttribute("show", "yes");
		Element titleElement = bookElement.addElement("title");
		titleElement.setText("Dom4j Tutorials");
		// book2
		bookElement = booksElement.addElement("book");
		bookElement.addAttribute("show", "yes");
		titleElement = bookElement.addElement("title");
		titleElement.setText("Lucene Studing");
		// book3
		bookElement = booksElement.addElement("book");
		bookElement.addAttribute("show", "no");
		titleElement = bookElement.addElement("title");
		titleElement.setText("Lucene in Action");

		Element ownerElement = booksElement.addElement("owner");
		ownerElement.setText("O'Reilly");

		try {
			XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));
			writer.write(document);
			writer.close();
			returnValue = 1;
		} catch (Exception ex) {
			ex.printStackTrace();
		}

		return returnValue;
	}

	public static int modiXMLFile(String filename, String newfilename) {
		int returnValue = 0;
		try {
			SAXReader saxReader = new SAXReader();
			Document document = saxReader.read(new File(filename));

			List list = document.selectNodes("/books/book/@show");
			Iterator iter = list.iterator();
			while (iter.hasNext()) {
				Attribute attribute = (Attribute) iter.next();
				if (attribute.getValue().equals("yes")) {
					attribute.setValue("no");
				} else if(attribute.getValue().equals("no")) {
					attribute.setValue("yes");
				}
			}

			list = document.selectNodes("/books/owner");
			iter = list.iterator();
			if (iter.hasNext()) {
				Element ownerElement = (Element) iter.next();
				ownerElement.setText("");
				Element ne = ownerElement.addElement("name");
				ne.setText("Tshinghua");
				Element dateElement = ownerElement.addElement("date");
				dateElement.setText("2004-09-11");
				dateElement.addAttribute("type", "Gregorian calendar");
			}
 
			list = document.selectNodes("/books/book");
			iter = list.iterator();
			while (iter.hasNext()) {
				Element bookElement = (Element) iter.next();
				Iterator iterator = bookElement.elementIterator("title");
				while (iterator.hasNext()) {
					Element titleElement = (Element) iterator.next();
					if (titleElement.getText().equals("Dom4j Tutorials")) {
						bookElement.remove(titleElement);
					}
				}
			}

			try {
	 
				XMLWriter writer = new XMLWriter(new FileWriter(new File(
						newfilename)));
				writer.write(document);
				writer.close();
				returnValue = 1;
			} catch (Exception ex) {
				ex.printStackTrace();
			}

		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return returnValue;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值