java在线打开xml文件_xmlutils.java 源代码在线查看 - XML配置文件读取的工具类 资源下载 虫虫电子下载站...

return null; List list = new ArrayList(); Iterator it = node.elementIterator(); while(it.hasNext()){ Element ele = (Element)it.next(); list.add(ele.getName()); } return list; } /** * 获取指定节点下,所有子节点的值列表 * @param node Element * @return List */ public static List getChildToList(Element node){ return getChildToList(node, null); } /** * 获取指定节点下,指定名称的所有子节点的值列表 * @param node Element * @param name String 要求匹配的节点名称,如果为null匹配所有节点 * @return List */ public static List getChildToList(Element node, String name){ if(node==null) return null; List list = new ArrayList(); String attrType = null; Iterator it = (name==null)?node.elementIterator():node.elementIterator(name); while(it.hasNext()){ Element ele = (Element)it.next(); attrType = ele.attributeValue(ATTR_TYPE); if(TYPE_MAP.equals(attrType)){ list.add(getChildToMap(ele)); } else if(TYPE_LIST.equals(attrType)){ list.add(getChildToList(ele, ele.attributeValue(ATTR_LIST_TAG))); } else if(TYPE_PAIRLIST.equals(attrType)){ list.add(getChildToPairList(ele)); } else{ list.add(ele.getText()); } } return list; } /** * 获取指定节点下,所有子节点的名值构成的PairList列表 * @param node Element * @return List */ public static PairList getChildToPairList(Element node){ if(node==null) return null; PairList list = new PairList(); Iterator it = node.elementIterator(); while(it.hasNext()){ Element ele = (Element)it.next(); list.add(new PairEntry(ele.getName(),ele.getText())); } return list; } /** * 获取指定节点下的所有子节点名值构成的Map(递归生成Map) * @param node Element * @return Map */ public static Map getRecursiveMap(Element node){ if(node==null) return null; Map map = new LinkedHashMap(); Element ele = null; Iterator it = node.elementIterator(); while(it.hasNext()){ ele = (Element)it.next(); if(ele.elements().size()>0) map.put(ele.getName(), getRecursiveMap(ele)); else map.put(ele.getName(), ele.getText()); } return map; } public static List getRecursiveList(Element node){ return getRecursiveList(node, null); } /** * 获取指定节点下的所有子节点名值构成的List(递归生成List) * @param node Element * @param name String //为指定的节点名,为空为所有节点 * @return Map */ public static List getRecursiveList(Element node, String name){ if(node == null) return null; List list = new ArrayList(); Element ele = null; Iterator it = (name == null) ? node.elementIterator() : node.elementIterator(name); while(it.hasNext()){ ele = (Element)it.next(); if(ele.elements().size() > 0) list.add(getRecursiveList(ele, name)); else list.add(ele.getText()); } return list; } /** * 获取指定节点下,所有子节点的名值构成的Map * @param node Element * @return Map */ public static Map getChildToMap(Element node){ if(node==null) return null; Map map = new LinkedHashMap(); Element ele = null; String attrType = null; Iterator it = node.elementIterator(); while(it.hasNext()){ ele = (Element)it.next(); attrType = ele.attributeValue(ATTR_TYPE); if(TYPE_MAP.equals(attrType)){ map.put(ele.getName(), getChildToMap(ele)); } else if(TYPE_LIST.equals(attrType)){ map.put(ele.getName(), getChildToList(ele, ele.attributeValue(ATTR_LIST_TAG))); } else if(TYPE_PAIRLIST.equals(attrType)){ map.put(ele.getName(), getChildToPairList(ele)); } else{ map.put(ele.getName(), ele.getText()); } } return map; } /** * 获取指定编码的XML * @param doc Document * @param encoding String * @return String */ public static String toXMLString(Document doc, String encoding){ try{ StringWriter out = new StringWriter(); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(encoding); format.setLineSeparator("\r\n"); XMLWriter writer = new XMLWriter(out, format); writer.write(doc); writer.close(); return out.toString(); } catch(Exception ex){ log.error("发生错误,无法输出XML[" + encoding + "]", ex); return ""; } } /** * 采用默认编码(GB2312)输出XML到OutputStream中 * @param doc Document * @param out OutputStream * @return boolean */ public static boolean writeXML(Document doc, OutputStream out){ return writeXML(doc, out, "GB2312"); } /** * 输出XML到OutputStream中 * @param doc Document * @param out OutputStream * @param encoding String * @return boolean */ public static boolean writeXML(Document doc, OutputStream out, String encoding){ try{ OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(encoding); format.setLineSeparator("\r\n"); XMLWriter writer = new XMLWriter(out, format); writer.write(doc); writer.close(); return true; } catch(Exception ex){ log.error("发生错误,无法输出XML[" + encoding + "]到输出流中", ex); return false; } } /** * 采用默认编码(GB2312)输出XML到Writer中 * @param doc Document * @param wr Writer * @return boolean */ public static boolean writeXML(Document doc, Writer wr){ return writeXML(doc, wr, "GB2312"); } /** * 输出XML到Writer中 * @param doc Document * @param wr Writer * @param encoding String 编码 * @return boolean */ public static boolean writeXML(Document doc, Writer wr, String encoding){ try{ OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(encoding); format.setLineSeparator("\r\n"); XMLWriter writer = new XMLWriter(wr, format); writer.write(doc); writer.close(); return true; } catch(Exception ex){ log.error("发生错误,无法输出XML[" + encoding + "]到输出流中", ex); return false; } } /** * 采用默认编码(GB2312)输出XML到文件中 * @param doc Document * @param fileName String 文件名 * @return boolean */ public static boolean writeXML(Document doc, String fileName){ return writeXML(doc, fileName, "GB2312"); } /** * 输出XML到文件中 * @param doc Document * @param fileName String 文件名 * @param encoding String 编码 * @return boolean */ public static boolean writeXML(Document doc, String fileName, String encoding){ try{ FileWriter fw = new FileWriter(fileName); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(encoding); format.setLineSeparator("\r\n"); XMLWriter writer = new XMLWriter(fw, format); writer.write(doc); writer.close(); return true; } catch(Exception ex){ log.error("发生错误,无法输出XML[" + encoding + "]到文件:" + fileName, ex); return false; } } //==== test ============================== public static void main(String[] args){ Document doc = XMLUtils.buildDocument(); Element ele = doc.addElement("Root"); addChildByBean(ele, "BEAN", new Integer(10)); System.out.println("====================="); System.out.println(XMLUtils.toXMLString(doc,"GB2312")); }}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值