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が表示されます.HardDiskのようなxmlファイルに情報を書き込むとします.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データの記述基準があれば、SQL文が関係データベースでクエリー操作を実行できるように、XQUERYとXPATHが潮流に順応し、誕生したクエリー言語がXMLで任意のノードのデータを検索できるはずだと自然に考えられる.XQUERYは複雑で、使い勝手が悪いため、XPATHはだんだん主流になって、私たちはXPATHを勉強するだけで、すべてのクエリーの要求に対応することができます.
XPATHのいくつかの有用な関数:
 
string concat (string, string, string*)
2つの文字列を結合
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);

			
		}
		
	}
}