浏览 2004 次
锁定老帖子 主题:DOM解析XML
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-15
最后修改:2009-11-26
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]); } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |