- 浏览: 93784 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
fxltsbl:
楼主,条码解析总是报com.google.zxing.NotF ...
Zxing2.2 生成QR二维码和一维码(条码) -
isy:
isy 写道用的包比较老了,还没有EncodeHintType ...
Zxing二维码 QR_CODE -
isy:
用的包比较老了,还没有EncodeHintType.MARGI ...
Zxing二维码 QR_CODE -
isy:
感谢分享!
Zxing二维码 QR_CODE -
sundayfleet:
我也是用Zxing2.2,下载官网上最新的版本。请问代码里的i ...
Zxing2.2 生成QR二维码和一维码(条码)
package com.wuhongbo.common.util.xml; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; /** * xml写入器 * * @author wuhongbo * */ public class XmlWrite { private Document doc; private Element root; /** * 构造xml写入器 * * @param xmlFile * 文件路径 * @throws XmlException */ public XmlWrite(String rootNodeName) throws XmlException { try { doc = DocumentHelper.createDocument(); root = DocumentHelper.createElement("response"); doc.add(root); } catch (Exception e) { e.printStackTrace(); throw new XmlException("xml创建失败:" + e.getMessage()); } } /** * 创建节点 * * @param nodeName * 节点名称 * @param text * 节点文本,为null时,无内容 如<name/> * @return 返回节点 */ public Node createNode(String nodeName, String text) { Element node = DocumentHelper.createElement(nodeName); node.setText(text); return node; } /** * 增加子节点 * * @param rootNode * 根节点 * @param nodeName * 子节点名称 * @return 返回子节点 * @throws XmlException */ public Node addChildNode(Node rootNode, String nodeName) throws XmlException { if (rootNode == null) { throw new XmlException("rootNode is null"); } Element element = (Element) rootNode; // 子节点 Element node = DocumentHelper.createElement(nodeName); element.add(node); return node; } /** * 增加子节点 * * @param rootNode * 根节点 * @param nodeName * 子节点名称 * @param text * 内容 * @return 返回子节点 * @throws XmlException * */ public Node addChildNode(Node rootNode, String nodeName, String text) throws XmlException { Node node = this.addChildNode(rootNode, nodeName); node.setText(text); return node; } /** * 增加子节点 * * @param rootNode * 根节点 * @param node * 子节点 * @return * @throws XmlException */ public Node addChildNode(Node rootNode, Node node) throws XmlException { Element element = (Element) rootNode; element.add(node); return node; } /** * 增加节点属性 * * @param rootNode * 根节点 * @param nodes * 子节点列表 * @throws XmlException */ public void addChildNodes(Node rootNode, List<Node> nodes) throws XmlException { Element element = (Element) rootNode; if (nodes != null) { for (Node node : nodes) { element.add(node); } } } /** * 设置节点文本 * * @param node * 节点 * @param text * 文本内容 */ public void setNodeAtt(Node node, String attName, String attValue) { if (node != null) { Element element = (Element) node; element.addAttribute(attName, attValue); } } /** * 获取xml文档根节点 */ public Node getRootNode() { return doc.getRootElement(); } /** * 创建xml文件 * * @param targetFile * 目录文件 * @throws XmlException */ public void createXmlFile(File targetFile) throws XmlException { try { Writer out = new FileWriter(targetFile); // 格式化输出,类型IE浏览一样 OutputFormat format = OutputFormat.createPrettyPrint(); // OutputFormat format = OutputFormat.createCompactFormat(); format.setEncoding("UTF-8"); // 创建写出对象 XMLWriter writer = new XMLWriter(out, format); writer.write(doc); writer.close(); } catch (Exception e) { throw new XmlException("xml文件生成失败"); } } public static void main(String[] args) throws XmlException { XmlWrite write = new XmlWrite("response"); Node root =write.getRootNode(); write.setNodeAtt(root,"ver", "1.0"); Node headNode = write.addChildNode(root, "head"); Node bodyNode = write.addChildNode(root, "body"); write.addChildNode(headNode, "status" ,"0"); write.addChildNode(headNode, "message" ,""); write.addChildNode(bodyNode, "status","0"); write.addChildNode(bodyNode, "message",""); write.addChildNode(bodyNode, "issuccess","false"); File targetFile =new File("c:/test2.xml"); write.createXmlFile(targetFile); System.out.println("end"); } public static void main2(String[] args) throws Exception { Document doc = DocumentHelper.createDocument(); Element root = DocumentHelper.createElement("response"); root.addAttribute("ver", "1.0"); Element head = DocumentHelper.createElement("head"); Node status = DocumentHelper.createElement("status"); status.setText("1<abc>2</abc>"); head.add(status); Element body = DocumentHelper.createElement("body"); root.add(head); root.add(body); doc.add(root); System.out.println(doc.getText()); // Writer out = new FileWriter("xml/emps.xml"); // out.write(doc.getText()); try { Writer out = new FileWriter("c:/test2.xml"); // 格式化输出,类型IE浏览一样 OutputFormat format = OutputFormat.createPrettyPrint(); // OutputFormat format = OutputFormat.createCompactFormat(); format.setEncoding("UTF-8"); // 创建写出对象 XMLWriter writer = new XMLWriter(out, format); writer.write(doc); writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("失败了。"); } System.out.println("end"); } }
package com.wuhongbo.common.util.xml; import java.io.File; import java.util.ArrayList; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.SAXReader; /** * xml读取器 * * @author wuhongbo * */ public class XmlRead { private SAXReader reader; private Document doc; /** * 构造xml解析器 * * @param xmlFile * 文件路径 * @throws XmlException */ public XmlRead(File xmlFile) throws XmlException { try { reader = new SAXReader(); doc = reader.read(xmlFile); } catch (DocumentException e) { throw new XmlException("xml创建失败:" + e.getMessage()); } } /** * 构造xml解析器 * * @param xmlStr * xml内容 * @throws XmlException */ public XmlRead(String xmlStr) throws XmlException { try { doc = DocumentHelper.parseText(xmlStr); } catch (DocumentException e) { throw new XmlException("xml创建失败:" + e.getMessage()); } } /** * 获取根节点 * * @throws XmlException */ public Node getRootNode() { return doc.getRootElement(); } /** * 获取指定节点下的唯一节点 * * @param rootNode * 指定根节点,不为空 * @param nodeName * 获取节点的名称 * @return 返回节点,无则返回为空,有多个则返回第1个 * @throws XmlException */ public Node getNode(Node rootNode, String nodeName) throws XmlException { if (rootNode == null) { // throw new XmlException("rootNode is null"); return null; } return rootNode.selectSingleNode(nodeName); } /** * 获取指定节点下的节点 * * @param rootNode * 指定根节点 * @param nodeName * 获取节点的名称 * @return 返回节点,无则返回为空,有多个则返回第1个 * @throws XmlException */ public List<Node> getNodes(Node rootNode, String nodeName) throws XmlException { if (rootNode == null) { // throw new XmlException("rootNode is null"); return new ArrayList<Node>(); } List<Node> list = rootNode.selectNodes(nodeName); return list; } /** * 获取节点的指定属性的值 * * @param node * 指根节点,不为空 * @param attName * 获取属性的名称 * @return 返回节点,无则返回为空 * @throws XmlException */ public String getNodeAtt(Node node, String attName) throws XmlException { if (node == null) { return null; } Element element = (Element) node; return element.attributeValue(attName); } /** * 获取指定根节点下的唯一节点的文本 * * @param root * 指定根节点,不为空 * @param nodeName * 获取节点的名称 * @return 返回节点,无则返回为空,有多个则返回第1个 * @throws XmlException */ public String getNodeText(Node rootNode, String nodeName) throws XmlException { if (rootNode == null) { // throw new XmlException("rootNode is null"); return null; } Node node = rootNode.selectSingleNode(nodeName); if (node != null) { return node.getStringValue(); } return null; } /** * 读取测试例子 * * @param args * @throws Exception */ public static void main(String[] args) throws Exception { String xmlStr = ""; File xmlFile = new File("c:/test2.xml"); XmlRead xmlRead = new XmlRead(xmlFile); Node rootNode = xmlRead.getRootNode(); System.out.println(xmlRead.getNodeAtt(rootNode, "ver")); Node headNode = xmlRead.getNode(rootNode, "head"); String status = xmlRead.getNodeText(headNode, "status"); System.out.println("status:" + status); Node bodyNode = xmlRead.getNode(rootNode, "body"); Node fileListNode = xmlRead.getNode(bodyNode, "filelist"); List<Node> list = xmlRead.getNodes(fileListNode, "file"); for (Node node : list) { System.out.println("----------------------"); System.out.println(xmlRead.getNodeText(node, "id")); System.out.println(xmlRead.getNodeText(node, "name")); } System.out.println("end"); } }
发表评论
-
java 写Excel工具类
2013-09-06 19:50 989public static void main(Strin ... -
java mail 支持text、html正文,多附件,发送、抄送、密送均多人
2013-08-28 14:05 1181测试代码,详情代码在email.rar目录,需要用到以下2个 ... -
Zxing2.2 生成QR二维码和一维码(条码)
2013-06-03 17:56 18226在http://code.google.com/p/zxi ... -
AES加密解密
2012-11-18 16:07 6240package com.wuhongbo.common.ut ... -
base64加密解密
2012-11-18 16:06 1122/** * */ package com.w ... -
ASCII转字符 字符转ASCII 十进制转其它进制
2012-07-12 16:07 1056public static void main(String ... -
java MD5加密码
2012-06-08 16:28 1165/** * */ package com.wuh ... -
Java读Excel
2011-08-10 11:24 1090import java.io.File; import ... -
Struts2文件上传
2011-08-10 10:08 1093页面上传名称为 upload 提交表单方式为Post 类型为 ... -
java 访问私有属性的值
2011-06-24 10:34 1491public static void main(Strin ... -
java注解例子
2011-05-19 11:12 2254定义注解 import java.lang.an ... -
生成一维码 条码
2011-05-17 17:31 13130import java.awt.image.BufferedI ... -
Zxing二维码 QR_CODE
2011-05-17 16:22 7603在http://code.google.com/p/zxi ...
相关推荐
总结起来,dom4j和jaxen的组合使用为Java开发者提供了强大的XML处理能力。dom4j负责解析、构建和修改XML文档,而jaxen则作为XPath查询工具,两者结合可以高效地处理复杂的XML操作。在实际项目中,掌握这两个库的使用...
DOM4J这个名字来源于“Document Object Model”(DOM)和“Java”的组合,它扩展了DOM接口,同时引入了基于事件的处理方式,使得XML处理更为简便。 本例子的核心知识点包括: 1. **DOM4J解析XML**:DOM4J通过创建...
**Dom4j解析XML+使用简介** Dom4j是一个非常流行的Java库,专门用于处理XML...在提供的两个PDF文件中,"Dom4j使用简介.pdf"和"Dom4j解析XML.pdf"应该包含了更详尽的示例和教程,帮助读者进一步掌握Dom4j的使用技巧。
在处理复杂的XML文件时,我们通常需要借助解析库,如Dom4j,来帮助我们提取和操作XML中的信息。Dom4j是一个灵活且功能强大的Java库,它提供了丰富的API来处理XML文档,包括读取、写入、修改和查询。 1. **Dom4j基本...
- Jaxen是一个独立于XML解析器的XPath实现,它允许在各种XML API(如DOM、DOM4J、JDOM等)之间进行XPath查询。 - Jaxen的核心在于其通用的XPath引擎,可以与多种XML对象模型协同工作,这样开发者无需关心底层的XML...
总之,DOM4J和XPath的组合是处理大文件XML数据的有效工具。通过合理的设计和优化,可以应对大数据挑战,实现高效的数据解析和处理。在实际操作中,应根据具体需求调整策略,确保程序的性能和稳定性。
描述中提到的"java xml解析所需要的包",通常包括了DOM4J库和其他辅助库,如XStream。XStream是一个用于Java的XML序列化库,能够将Java对象直接转换为XML,反之亦然。这在需要将数据持久化到XML或者从XML中恢复数据...
在XML解析方面,DOM4J提供了一些核心类,如`Document`、`Element`、`Attribute`和`Namespace`等。`Document`代表整个XML文档,`Element`表示XML中的元素节点,`Attribute`代表元素的属性,而`Namespace`则用于处理...
总的来说,DOM4J和XPath是XML处理的强大组合,它们提供了一种简洁、高效的途径来操作XML文档。了解并熟练掌握这两个工具,对于任何涉及XML的Java开发工作都是至关重要的。通过学习和实践,开发者可以提升XML数据处理...
DOM4J的名字来源于Document Object Model(DOM)和Java的组合,但它并不完全遵循W3C的DOM规范,而是采用了一种更面向Java的API设计。 在您提供的文件中,我们看到了DOM4J的三个不同版本:1.6.1、2.0.2和2.1.1。这些...
1. XML解析:dom4j采用事件驱动和模型驱动的混合方式解析XML,使得处理大型XML文档时性能更优。它支持SAX和DOM两种解析模式,可以根据需求选择适合的方式。 2. 数据操作:dom4j提供了XPath支持,可以方便地通过...
DOM4J这个名字来源于“Document Object Model”(DOM)和“Java”的组合,表明它是基于Java的对象模型来处理XML文档的。与标准的DOM API相比,DOM4J更轻量级,性能更高,且使用更加方便。 **DOM4J的主要特点** 1. ...
DOM4J这个名字来源于Document Object Model(DOM)和Java(4J)的组合,尽管它并不直接使用W3C的DOM接口,但它提供了类似的抽象概念,且在性能和灵活性上有所提升。 **DOM4J的主要功能** 1. **解析XML**:DOM4J...
Jaxen使XPath查询在不同的XML解析器之间具有可移植性,因此即使在DOM4J中使用XPath,也可以通过Jaxen调用其他解析器的实现。 "W3CSchool.chm"文档是一个经典的在线编程学习资源,其中的XPath教程可能包含了XPath的...
总的来说,DOM4J-1.6.1.jar和Jaxen.jar是Java开发中的两个关键组件,它们提供了强大的XML解析和查询功能。了解和掌握这两个库的使用,对于提升Java开发者处理XML文档的能力至关重要。通过熟练运用DOM4J和Jaxen,可以...
DOM4J支持XPath和XSLT,可以方便地进行XML文档的构建、解析和修改。 2. XML文档结构:XML是一种可扩展标记语言,用于存储和传输数据。一个基本的XML文档由元素(Element)、属性(Attribute)、文本内容(Text)等...
2. **解析XML**:DOM4J支持多种解析方式,包括SAX(Simple API for XML)和DOM解析器。SAX解析器适合处理大型XML文档,因为它使用事件驱动的方式,不会一次性加载整个文档到内存中。DOM解析器则会将整个文档加载到...
DOM4J基于Document Object Model (DOM)模型,能完全解析XML文档并将其转化为内存中的树形结构,方便进行查找、修改和遍历。例如,我们可以通过Element、Attribute等类来创建、修改XML元素和属性,通过XPath表达式...
XPP是一种轻量级的XML解析器,它基于PULL(Pull Parser)模式,与DOM和SAX不同,PULL解析器不创建整个文档树,而是按需逐事件地处理XML。这种方式在处理大型或流式XML文档时,能有效节省内存。XPP3通常被用作其他库...