配置文件到xml文件的读取

1、以key-value对存储的信息

 

     代码中所需的信息,可以以key-valu对的形式写到配置文件中。如HardDiskProperties.properties放于src目录下

disk=c
capacity=8G

  

    测试代码

   

public class BaseKeyValue {
	
	public static void main(String[] args) throws Exception{
		Properties pro=new Properties();
		pro.load(BaseKeyValue.class.getClassLoader().getResourceAsStream("HardDiskProperties.properties"));
		String diskStr=pro.getProperty("disk");
		String capacityStr=pro.getProperty("capacity");
		System.out.println("磁盘信息:盘符 "+diskStr+" ,容量 "+capacityStr);
		
	}

}

 

2、1中的配置文件过于简单,所以xml就出现了。如果把信息写入到xml文件中,如HardDisk.xml,放于src目录下

    

<?xml version="1.0" encoding="UTF-8"?>
<HD>
 <disk name="C">
  <capacity>8G</capacity>
 </disk>
</HD>

 

    测试代码

 

public class TestJdom{
	
	public static void main(String[] args) throws Exception{
		SAXBuilder saxBuild=new SAXBuilder();
		Document doc=saxBuild.build(TestJdomXPATH.class.getClassLoader().getResourceAsStream("HardDisk.xml"));
		Element root=doc.getRootElement();
		List list=root.getChildren();
		for(int i=0;i<list.size();i++){
			Element diskE=(Element)list.get(i);
			String diskName=diskE.getAttributeValue("name");
			String capacity=diskE.getChildText("capacity");
			System.out.println("磁盘信息,分区 "+diskName+" ,容量 "+capacity);
		}
		
	}

}

  

3、有了XML数据的描述标准,人们自然就会想到应该有一种查询语言可以在XML中查找任意节点的数据,就像SQL语句可以在关系性数据库中执行查询操作一样,于是XQUERY和XPATH顺应潮流,应运而生。由于XQUERY较为复杂,使用不甚方便,XPATH渐渐成为主流,我们只需对XPATH进行学习,便可以应付所有的查询要求。

XPATH中一些有用的函数:

 

string concat (string, string, string*) 联接两个字符串
boolean starts-with (string, string) 判断某字符串是否以另一字符串开头
boolean contains (string, string) 判断某字符串是否包含另一字符串
string substring (string, number, number) 取子字符串
number string-length (string) 测字符串长度
number sum (node-set) 求和
number floor (number) 求小于此数的最大整数值
number ceiling (number) 求大于此数最小整数值

 

测试代码,除了需要基本的jdom.jar外,还需要下载jaxen.jar

 

public class TestJDomXpath {
	public static void main(String[] args) throws Exception{
		
		SAXBuilder saxBuilder=new SAXBuilder();
		Document doc=saxBuilder.build(TestJDom.class.getClassLoader().getResourceAsStream("HardDisk.xml"));
		Element root=doc.getRootElement();
		
		List list=XPath.selectNodes(root, "/HD/disk");
		for(int i=0;i<list.size();i++){
			Element diskElement=(Element)list.get(i);
			
			String diskName=diskElement.getAttributeValue("name");
			String capacity = ( (Text) XPath.selectSingleNode(diskElement, 
				    "//disk[@name='" + diskName + "']/capacity/text()")).getTextNormalize();
			System.out.println("磁盘信息,分区 "+diskName+" ,容量 "+capacity);

			
		}
		
	}
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值