在java中怎么用dom4j解析XML文件??
答案:3 悬赏:20 手机版
解决时间 2021-03-27 23:58
- 提问者网友:低吟詩仙的傷
- 2021-03-27 01:28
在java中怎么用dom4j解析XML文件??
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-03-27 01:52
以下是曾经写的一个解析XML获取XML中图片流的字符串,获取并转化为图片的工具类
里面海带哟base64编码,具体代码如下,希望能帮到你
package com.asidel.web.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import com.dragonsoft.adapter.AdapterSend;
public class XMLparserUtil {
public static String getXp(String xmlStr,String sfzh) {
String xp = "";
try {
// 将String转化成xml
Document document = DocumentHelper.parseText(xmlStr);
// 获取Value节点下的Row子节点
List RowElementList = XMLparserUtil.getRowElementList(document);
if (RowElementList != null && RowElementList.size() > 0) {
Element RowElement3 = (Element) RowElementList.get(RowElementList.size() - 1);
// 根据节点获取值
String xpBase64 = RowElement3.elementTextTrim("Data");
// System.out.println("xpBase64:" + xpBase64);
if (!"".equals(xpBase64) && xpBase64 != null) {
xp = XMLparserUtil.getDecodingBASE64(xpBase64, sfzh);
}
// System.out.println("xp:" + xp);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
xp = "";
}
return xp;
}
public static String getEncodingBASE64(String string) {
String returnStr = "";
if (!"".equals(string) && string != null) {
try {
BASE64Encoder base64Encoder = new BASE64Encoder();
returnStr = base64Encoder.encode(string.getBytes());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
return returnStr;
}
public static String getDecodingBASE64(String imgStr, String imgName) {
String imgFilePath = "";// 新生成的图片
BASE64Decoder decoder = new BASE64Decoder();
if (!"".equals(imgStr) && imgStr != null) {
try {
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
PathUtil pathUtil = new PathUtil();
String zdryxppath = pathUtil.getWebRoot()+"uploadImages/";
System.out.println("zdryxppath="+zdryxppath);
File pathDir = new File(zdryxppath);// 如果目录不存在就创建该目录
if (!pathDir.exists()) {
pathDir.mkdirs();
}
String imgFileRealPath = zdryxppath + imgName + ".jpg";// 新生成的图片
OutputStream out = new FileOutputStream(imgFileRealPath);
out.write(b);
out.flush();
out.close();
imgFilePath = "uploadImages/" + imgName + ".jpg";
} catch (Exception e) {
e.printStackTrace();
}
}
return imgFilePath;
}
public static List getRowElementList(Document document) {
List returnRowElementList = null;
// 获取根节点
Element rootElement = document.getRootElement();
// System.out.println("rootElement:"+rootElement);
// 获取根节点下的Method子节点
Iterator MethodElementList = rootElement.elementIterator("Method");
// 遍历Method节点
while (MethodElementList.hasNext()) {
Element MethodElement = (Element) MethodElementList.next();
// System.out.println("Method:"+MethodElement);
// 获取Method节点下的Items子节点
Iterator ItemsElementList = MethodElement.elementIterator("Items");
// 遍历Items节点
while (ItemsElementList.hasNext()) {
Element ItemsElement = (Element) ItemsElementList.next();
// System.out.println("Items:"+ItemsElement);
// 获取Items节点下的Item子节点
Iterator ItemElementList = ItemsElement.elementIterator("Item");
// 遍历Item节点
while (ItemElementList.hasNext()) {
Element ItemElement = (Element) ItemElementList.next();
// System.out.println("Item:"+ItemElement);
// 获取Item节点下的Value子节点
Iterator ValueElementList = ItemElement.elementIterator("Value");
// 遍历Value节点
while (ValueElementList.hasNext()) {
Element ValueElement = (Element) ValueElementList.next();
// System.out.println("Value:"+ValueElement);
returnRowElementList = ValueElement.elements("Row");
// // 获取Value节点下的Row子节点
// List
// if (RowElementList != null && RowElementList.size() >
// 0) {
// Element RowElement3 = (Element)
// RowElementList.get(RowElementList.size() - 1);
// // System.out.println("Row:"+RowElement3);
// // 根据节点获取值
// xp = RowElement3.elementTextTrim("Data");
// System.out.println("xp:" + xp);
// }
}
}
}
}
return returnRowElementList;
}
public static void main(String[] args) {}
}
里面海带哟base64编码,具体代码如下,希望能帮到你
package com.asidel.web.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import com.dragonsoft.adapter.AdapterSend;
public class XMLparserUtil {
public static String getXp(String xmlStr,String sfzh) {
String xp = "";
try {
// 将String转化成xml
Document document = DocumentHelper.parseText(xmlStr);
// 获取Value节点下的Row子节点
List RowElementList = XMLparserUtil.getRowElementList(document);
if (RowElementList != null && RowElementList.size() > 0) {
Element RowElement3 = (Element) RowElementList.get(RowElementList.size() - 1);
// 根据节点获取值
String xpBase64 = RowElement3.elementTextTrim("Data");
// System.out.println("xpBase64:" + xpBase64);
if (!"".equals(xpBase64) && xpBase64 != null) {
xp = XMLparserUtil.getDecodingBASE64(xpBase64, sfzh);
}
// System.out.println("xp:" + xp);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
xp = "";
}
return xp;
}
public static String getEncodingBASE64(String string) {
String returnStr = "";
if (!"".equals(string) && string != null) {
try {
BASE64Encoder base64Encoder = new BASE64Encoder();
returnStr = base64Encoder.encode(string.getBytes());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
return returnStr;
}
public static String getDecodingBASE64(String imgStr, String imgName) {
String imgFilePath = "";// 新生成的图片
BASE64Decoder decoder = new BASE64Decoder();
if (!"".equals(imgStr) && imgStr != null) {
try {
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
PathUtil pathUtil = new PathUtil();
String zdryxppath = pathUtil.getWebRoot()+"uploadImages/";
System.out.println("zdryxppath="+zdryxppath);
File pathDir = new File(zdryxppath);// 如果目录不存在就创建该目录
if (!pathDir.exists()) {
pathDir.mkdirs();
}
String imgFileRealPath = zdryxppath + imgName + ".jpg";// 新生成的图片
OutputStream out = new FileOutputStream(imgFileRealPath);
out.write(b);
out.flush();
out.close();
imgFilePath = "uploadImages/" + imgName + ".jpg";
} catch (Exception e) {
e.printStackTrace();
}
}
return imgFilePath;
}
public static List getRowElementList(Document document) {
List returnRowElementList = null;
// 获取根节点
Element rootElement = document.getRootElement();
// System.out.println("rootElement:"+rootElement);
// 获取根节点下的Method子节点
Iterator MethodElementList = rootElement.elementIterator("Method");
// 遍历Method节点
while (MethodElementList.hasNext()) {
Element MethodElement = (Element) MethodElementList.next();
// System.out.println("Method:"+MethodElement);
// 获取Method节点下的Items子节点
Iterator ItemsElementList = MethodElement.elementIterator("Items");
// 遍历Items节点
while (ItemsElementList.hasNext()) {
Element ItemsElement = (Element) ItemsElementList.next();
// System.out.println("Items:"+ItemsElement);
// 获取Items节点下的Item子节点
Iterator ItemElementList = ItemsElement.elementIterator("Item");
// 遍历Item节点
while (ItemElementList.hasNext()) {
Element ItemElement = (Element) ItemElementList.next();
// System.out.println("Item:"+ItemElement);
// 获取Item节点下的Value子节点
Iterator ValueElementList = ItemElement.elementIterator("Value");
// 遍历Value节点
while (ValueElementList.hasNext()) {
Element ValueElement = (Element) ValueElementList.next();
// System.out.println("Value:"+ValueElement);
returnRowElementList = ValueElement.elements("Row");
// // 获取Value节点下的Row子节点
// List
// if (RowElementList != null && RowElementList.size() >
// 0) {
// Element RowElement3 = (Element)
// RowElementList.get(RowElementList.size() - 1);
// // System.out.println("Row:"+RowElement3);
// // 根据节点获取值
// xp = RowElement3.elementTextTrim("Data");
// System.out.println("xp:" + xp);
// }
}
}
}
}
return returnRowElementList;
}
public static void main(String[] args) {}
}
全部回答
- 1楼网友:琴狂剑也妄
- 2021-03-27 04:17
引入dom4j的包,直接用dom,sex就行了呀
- 2楼网友:醉吻情书
- 2021-03-27 02:46
附件里面为一个简单的解析,可以拿去参考一下,如有不懂请追问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯