Java:使用DOM4j来实现读写XML文件中的属性和元素

DOM4可以读取和添加XML文件的属性或者元素

读取属性:

public static void ReadAttributes() throws DocumentException {
		File file = new File("D:\\cmz\\java\\XMLTest\\Customertest.xml");
		SAXReader reader = new SAXReader();
		Document doc = reader.read(file);
		Element root = doc.getRootElement();
		try {

			for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
				Element element = (Element) iterator.next();
				String CustomerID = element.attributeValue("CustomerID");
				System.out.println("CustomerID = " + CustomerID);
				String CompanyName = element.attributeValue("CompanyName");
				System.out.println("CompanyName =  " + CompanyName);
				System.out.println("ContactName = "
						+ element.attributeValue("ContactName"));
				System.out.println("ContactTitle = "
						+ element.attributeValue("ContactTitle"));
				System.out.println("Address = "
						+ element.attributeValue("Address"));
				System.out.println("City = " + element.attributeValue("City"));
				System.out.println("PostalCode = "
						+ element.attributeValue("PostalCode"));
				System.out.println("Country = "
						+ element.attributeValue("Country"));
				System.out
						.println("Phone = " + element.attributeValue("Phone"));
				System.out.println("Fax = " + element.attributeValue("Fax"));
				System.out
						.println("--------------------------------------------------------\t");

			}
		} catch (Exception e) {
			// TODO: handle exception
		}

	}

读取元素:

public static void ReadInnerTest() throws DocumentException {
		File file = new File("D:\\cmz\\java\\XMLTest\\Customer1.xml");
		SAXReader reader = new SAXReader();
		Document doc = reader.read(file);
		Element root = doc.getRootElement();

		try {
			for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
				Element type = (Element) iterator.next();
				
				System.out.println(type.elementText("CustomerID"));
				System.out.println(type.elementText("CompanyName"));
				System.out.println(type.elementText("ContactName"));
				System.out.println(type.elementText("ContactTitle"));
				System.out.println(type.elementText("Address"));
				System.out.println(type.elementText("City"));
				System.out.println(type.elementText("PostalCode"));
				System.out.println(type.elementText("Country"));
				System.out.println(type.elementText("Phone"));
				System.out.println(type.elementText("Fax"));
				System.out.println("---------------------------------\t");
			}

		} catch (Exception e) {
			// TODO: handle exception
		}
	}

写入属性:

public static void WriteAttributes() {
		Document doc = DocumentHelper.createDocument();
		Element ele = doc.addElement("table");
		for (int i = 1; i < 5; i++) {
			Element Customers = ele.addElement("Customers");
			
			Customers.addAttribute("CustomerID", "ALFKI" + i);
			Customers.addAttribute("CompanyName", "Alfreds Futterkiste" + i);
			Customers.addAttribute("ContactName", "Maria Anders" + i);
			Customers.addAttribute("ContactTitle", "Sales Representative" + i);
			Customers.addAttribute("Address", "Obere Str. 57");
			Customers.addAttribute("City", "beijin");
			Customers.addAttribute("PostalCode", "12209");
			Customers.addAttribute("Country", "Germany");
			Customers.addAttribute("Phone", "030-0074321");
			Customers.addAttribute("Fax", "030-0076545");
			try {
				XMLWriter writer = new XMLWriter(new FileWriter(new File(
						"Customertest.xml")));
				writer.write(doc);
				writer.close();
			} catch (Exception e) {
				// TODO: handle exception
			}
		}

	}

写出元素:

public static void  writeInnerTest(){
		Document doc = DocumentHelper.createDocument();
		Element ele = doc.addElement("table");
		
		for (int i = 1; i < 5; i++) {
			Element Customers = ele.addElement("row");
			Element CustomerID = ele.addElement("CustomerID");
			CustomerID.setText("ALFKI" + i);
			Element CompanyName = ele.addElement("CompanyName");
			CompanyName.setText("Alfreds Futterkiste" + i);
			Element ContactName = ele.addElement("ContactName");
			ContactName.setText("Maria Anders" + i);
			Element ContactTitle = ele.addElement("ContactTitle");
			ContactTitle.setText("Sales Representative" + i);
			Element Address = ele.addElement("Address");
			Address.setText("Obere Str. 57");
			Element City = ele.addElement("City");
			City.setText("beijin");
			Element PostalCode = ele.addElement("PostalCode");
			PostalCode.setText("12209");
			Element Country = ele.addElement("Country");
			Country.setText("Germany");
			Element Phone = ele.addElement("Phone");
			Phone.setText("030-0074321");
			Element Fax = ele.addElement("Fax");
			Fax.setText("030-0076545");
		}
		try {
			XMLWriter writer = new XMLWriter(new FileWriter(new File(
					"Customertest2.xml")));
			writer.write(doc);
			writer.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		
	}

可以修改属性的文本内容:

public static void ReadUpdateattribute() throws DocumentException{
		File file = new File("D:\\cmz\\java\\XMLTest\\Customertest.xml");
		SAXReader reader = new SAXReader();
		Document doc = reader.read(file);
		Element root = doc.getRootElement();
		
		try {

			for (Iterator iterator = root.elementIterator("Customers"); iterator.hasNext();) {
				Element element = (Element) iterator.next();
				String name = "ALFKI1";
				if (name.equals(element.attributeValue("CustomerID")) ) {
					Attribute attr = element.attribute("CustomerID");
					attr.setValue("234");
					Element ContactName = element.addElement("23424");
					ContactName.setText("676767" );
				}
					
				
				

			}
			XMLWriter writer = new XMLWriter(new FileOutputStream(file));
			writer.write(doc);
			ReadAttributes();
		} catch (Exception e) {
			// TODO: handle exception
		}
		
	}

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值