자바 가 XML 파일 을 읽 는 도구 클래스 를 썼 습 니 다. 필기 하 세 요!
managers table
+
service
implementation
net.csdn.blog.xport.IDBConnectionManager
net.csdn.blog.xport.impl.DBConnectionManagerCommonImpl
net.csdn.blog.xport.IDomainIdentify
net.csdn.blog.xport.impl.DomainIdentifyImpl
따라서 프로그램 에서 Table Query 와 같은 방식 으로 XML 노드 (Node) 의 속성 값 을 읽 을 수 있 습 니 다!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE managers SYSTEM "manager-config.dtd">
<managers>
<manager name="DBConnectionManager" >
<service>net.csdn.blog.xport.IDBConnectionManager</service>
<implementation>net.csdn.blog.xport.impl.DBConnectionManagerCommonImpl</implementation>
</manager>
<manager name="NTAccountIdendify" >
<service>net.csdn.blog.xport.IDomainIdentify</service>
<implementation>net.csdn.blog.xport.impl.DomainIdentifyImpl</implementation>
</manager>
</managers>
다음 코드 로 읽 기:// manager tag , name "DBConnectionManager"
// XML , DOM Element !
// name PK , name="DBConnectionManager"
managerElement
= XMLFileUtil.findElement(xmlDomContent.getRootElement(),
"manager",
"name",
"DBConnectionManager");
if (managerElement != null) {
// Element implementation ...
serviceImplElement = managerElement.element("implementation");
if (serviceImplElement != null) {
// ...
serviceImplClassString = serviceImplElement.getText();
}
}
Source of XML Utility Class: /*
* @(#)XMLFileUtil.java 1.0 2004/12/20
*
* Copyright 2004 Shark Wang, All rights reserved.
*/
package net.csdn.blog.xport;
import java.net.URL;
import java.util.Iterator;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* The <code>XmlUtil</code> class supported your code to read/write xml
* data from the file. all methods in this class depend on <code>dom4j</code>.
*
* @author Shark Wang
* @version 1.0, 2004/12/20
* @since Tutorial 1.0
*/
public class XMLFileUtil {
private static Logger logger = LogManager.getLogger(XMLFileUtil.class);
/**
* read xml content from some file, and load xml data into the
* Document object.
*
* @param filePath String
* @return Document
*/
public static Document LoadXmlFile(String filePath) {
/* marked by Shark Wang
*****************************************************************
//get resolver to ignore the DTD validation
EntityResolver resolver = new EntityResolver() {
public InputSource resolveEntity(String publicId,
String systemId) {
return new InputSource(new StringBufferInputStream(""));
}
};
//create reader
SAXReader reader = new SAXReader();
//set reader attribute to ignore DTD validation
reader.setEntityResolver(resolver);
reader.setValidation(false);
reader.setIncludeExternalDTDDeclarations(false);
reader.setIncludeInternalDTDDeclarations(false);
*******************************************************************
*/
SAXReader reader = new SAXReader();
//try to load xml data into Document object
Document doc = null;
try {
String urlString = null;
if (filePath.startsWith("/")) {
urlString = "file://" + filePath;
}
else {
urlString = "file:///" + filePath;
}
logger.debug("XML File's URL :" + urlString);
doc = reader.read(new URL(urlString));
}
catch (Exception ex) {
logger.info("Can not load " + filePath);
logger.debug(ex.getMessage(), ex);
}
//return Document object
return doc;
}
/**
* Get attribute value by name for some xml element.
*
* @param element Element
* @param attributeName String
* @return String
*/
public static String getAttributeValue(Element element,
String attributeName) {
String attributeValue = null;
for (Iterator i = element.attributeIterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
if (attribute.getName().equals(attributeName)) {
attributeValue = (String) attribute.getData();
break;
}
}
return attributeValue;
}
public static Element findElement(Element searchedElement,
String targetNodePrefix,
String targetNodeAttributeName,
String targetNodeAttributeValue) {
Element elementTarget = null;
for (Iterator i = searchedElement.elementIterator(targetNodePrefix);
i.hasNext(); ) {
Element element = (Element) i.next();
String strManagerName =
XMLFileUtil.getAttributeValue(element,
targetNodeAttributeName);
if (strManagerName.equals(targetNodeAttributeValue)) {
elementTarget = element;
break;
}
}
return elementTarget;
}
private XMLFileUtil() {
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.