欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DOM解析XML

程序员文章站 2022-01-20 10:04:53
...
package com.netunit.workbench.util;

import java.io.File;

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 何明
*
*/
public class HandleSlotConfig {

private static final String path = "D:\\slotconfig.xml";

private static Element root = null;

private static Element theHandle = null;

private static Element theProperties = null;

public HandleSlotConfig(){



}

/**
* 将配置信息保存到本地
* @param timeSlot 时隙
* @param passage 通道
* @param address1 卡地址
* @param address2 槽道地址
* @param port1 源端
* @param port2 宿端
* @return
*/
public static int toWrite(String timeSlot,String passage,String address1,String address2,String port1,String port2){

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

try{

DocumentBuilder db = factory.newDocumentBuilder();

File file = new File(path);

Document doc = db.parse(file);

root = doc.getDocumentElement();

theHandle = doc.createElement("info");

theProperties = doc.createElement("timeslot");

theProperties.setAttribute("id", timeSlot);

theProperties.setTextContent(passage);

theHandle.appendChild(theProperties);

theProperties = doc.createElement("address");

theProperties.setAttribute("id", address1);

theProperties.setTextContent(address2);

theHandle.appendChild(theProperties);

theProperties = doc.createElement("port");

theProperties.setAttribute("id", port1);

theProperties.setTextContent(port2);

theHandle.appendChild(theProperties);

root.appendChild(theHandle);

HandleLogXML.saveXml(path, doc);

}catch(Exception e){

e.printStackTrace();

}

return 0;

}

/**
* 获得节点值
* @param key
* @return
*/
public static String[] getMessage(String key){

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

try{

DocumentBuilder db = factory.newDocumentBuilder();

File file = new File(path);

Document doc = db.parse(file);

String [] str = new String[doc.getDocumentElement().getElementsByTagName(key).getLength()];

NodeList le =doc.getDocumentElement().getElementsByTagName(key);

for(int i = 0; i < le.getLength(); ++i){

Node no = le.item(i);

str[i] = no.getTextContent();

}

return str;

}catch(Exception e){

e.printStackTrace();

}

return null;

}

/**
* 获得节点属性值
* @param key
* @return
*/
public static String[] getAtributeValue(String key){

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

try{

DocumentBuilder db = factory.newDocumentBuilder();

File file = new File(path);

Document doc = db.parse(file);

String[] str = new String[doc.getDocumentElement().getElementsByTagName(key).getLength()];

NodeList le = doc.getDocumentElement().getElementsByTagName(key);

for(int i = 0; i < le.getLength(); ++i){

Element no = (Element)le.item(i);

str[i] = no.getAttribute("id");

}

return str;

}catch(Exception e){

e.printStackTrace();

}

return null;

}

public static void main(String []args){

HandleSlotConfig.toWrite("5", "8","3","5","3","2");

String[] str = new String[HandleSlotConfig.getMessage("port").length];

str = HandleSlotConfig.getMessage("port");

for(int i = 0; i < str.length; ++i){

System.out.println(str[i]);

}

String[] s = new String[HandleSlotConfig.getAtributeValue("address").length];

s = HandleSlotConfig.getAtributeValue("address");

for(int i = 0; i < s.length; ++i){

System.out.println(s[i]);

}


}


}
相关标签: XML