XML的解析:
这是一个抽象(abstract)的类,使用方法如下:
//xmlpath:XML文件的路径;
//method:XML文件中的属性;
new XMLReader() {
@Override
public void dealElement(Element element, int index) {
// 这里是处理得到的相关数据
dealMethod(element, ele, viewFactory);
}
}.xmlParse(xmlPath, "method");
xml解析代码:
public abstract class XMLReader {
private static DocumentBuilder documentBuilder;
private static void init() {
try {
documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
public XMLReader() {
}
public static Document document(String xmlPath) {
return document(XMLReader.class.getResourceAsStream(xmlPath));
}
public static Document document(InputStream is) {
init();
Document document = null;
try {
document = documentBuilder.parse(is);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return document;
}
public abstract void dealElement(Element element, int index);
public XMLReader xmlParse(Document document, String tagname) {
NodeList nodeList = document.getElementsByTagName(tagname);
for(int index = 0; index < nodeList.getLength(); index++) {
Element element = (Element) nodeList.item(index);
dealElement(element, index);
}
return this;
}
public XMLReader xmlParse(Element element, String tagname) {
NodeList nodeList = element.getElementsByTagName(tagname);
for(int index = 0; index < nodeList.getLength(); index++) {
Element ele = (Element) nodeList.item(index);
dealElement(ele, index);
}
return this;
}
}