📄 cfgxmlparser.java
字号:
package com.cjsc.it.xml;
import java.io.File;
import java.io.FileInputStream;
import java.util.Vector;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
*
* @author ikhelen (iking & helen) <br>
* <b>功能描述 <b>: <br>
* <b>实现思路 <b>: <br>
* <b>用例说明 <b>: <br>
* iking7712@hotmail.com <br>
* 18700291 from jx. 2007-3-18 下午03:37:00
*/
public class CfgXMLParser {
private static CfgInfo cfgInfo = null;
private static final String USER_NAME = "userName";
private static final String PASSWORD = "password";
private static final String HOST_NAME = "host";
private static final String DOMINO_POOLS = "DominoPools";
private static final String DOMINO_POOL = "DominoPool";
private static final String MAX_POOL_NUM = "maxPoolNum";
public static Element loadDocument(String location) {
Document doc = null;
try {
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder parser = docBuilderFactory.newDocumentBuilder();
File xmlFile = new File(location);
doc = parser.parse(new FileInputStream(xmlFile));
Element root = doc.getDocumentElement();
root.normalize();
return root;
} catch (Exception err) {
}
return null;
}
public static CfgInfo loadCfgInfo(String location) {
cfgInfo = new CfgInfo();
Element root = loadDocument(location);
loadDominoPoolInfo(root);
return cfgInfo;
}
public static Vector getSQlValue(Node node, String subTagName) {
Vector sqls = new Vector();
if (node != null) {
NodeList children = node.getChildNodes();
for (int innerLoop = 0; innerLoop < children.getLength(); innerLoop++) {
Node child = children.item(innerLoop);
if ((child != null) && (child.getNodeName() != null)
&& child.getNodeName().equals(subTagName)) {
Node grandChild = child.getFirstChild();
if (grandChild.getNodeValue() != null)
sqls.addElement(grandChild.getNodeValue().trim());
}
} // end inner loop
}
return sqls;
}
private static void loadDominoPoolInfo(Element root) {
String tagName = CfgXMLParser.DOMINO_POOLS;
String subTagName = CfgXMLParser.DOMINO_POOL;
NodeList list = root.getElementsByTagName(tagName);
for (int loop = 0; loop < list.getLength(); loop++) {
Node node = list.item(loop);
if (node != null) {
NodeList children = node.getChildNodes();
for (int innerLoop = 0; innerLoop < children.getLength(); innerLoop++) {
Node child = children.item(innerLoop);
if ((child != null) && (child.getNodeName() != null)
&& child.getNodeName().equals(subTagName)) {
if (child instanceof Element) {
DominoPoolInfo dominoPoolInfo = new DominoPoolInfo();
dominoPoolInfo.setHost(((Element) child)
.getAttribute(CfgXMLParser.HOST_NAME)
.trim());
dominoPoolInfo.setUserName(((Element) child)
.getAttribute(CfgXMLParser.USER_NAME)
.trim());
dominoPoolInfo
.setPassword(((Element) child)
.getAttribute(CfgXMLParser.PASSWORD)
.trim());
dominoPoolInfo.setMaxPoolNum(((Element) child)
.getAttribute(CfgXMLParser.MAX_POOL_NUM)
.trim());
Node grandChild = child.getFirstChild();
if (grandChild.getNodeValue() != null) {
dominoPoolInfo.setPoolName((grandChild)
.getNodeValue().trim());
}
// 记入缓冲区
cfgInfo.addDominoPoolInfo(dominoPoolInfo
.getPoolName(), dominoPoolInfo);
}
}
} // end inner loop
}
}
}
public static void main(String[] args) {
String xml = System.getProperty("user.dir")
+ System.getProperty("file.separator") + "domino.xml";
System.out.println(xml);
CfgInfo cfg = CfgXMLParser.loadCfgInfo(xml);
DominoPoolInfo info = cfg.getDominoPoolInfo("10.0.16.1");
System.out.println(info.getMaxPoolNum());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -