永发信息网

在java中怎么用dom4j解析XML文件??

答案:3  悬赏:20  手机版
解决时间 2021-03-27 23:58
在java中怎么用dom4j解析XML文件??
最佳答案
以下是曾经写的一个解析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) {}
}
全部回答
引入dom4j的包,直接用dom,sex就行了呀

附件里面为一个简单的解析,可以拿去参考一下,如有不懂请追问。
追问不行啊 取不到1</column>里面ID的值啊追答用我给你的那个类里面的name1.getText()就能获取到中间的值了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
判断题我国必须十分珍惜和合理利用每一寸土地
你好网友们:我是山东省聊城市东阿县高集镇中
杰斯卡 赤霞珠干红葡萄酒多少钱一支?
青春你好肖一飞唱的下载
在墙体上开洞不用过梁可以吗
求大师帮忙看看我跟我对象的感情走向手摇的,
急求les的有肉的动画片!!!要在线下载的。
怎么我的房贷利率是5.39建行
28平方的房子 装修大概花费多少
现在微商做什么产品好卖赚钱
博士是读高校的好?还是研究所的好呢?
180度减36度54秒等于多少?
诗人王维用诗句什么告诉大家红豆的生长情况,
困在6年的记忆中走不出来的我,帮帮我把……
这个是什么瓜,树子就像橘子树一样有刺
推荐资讯
QS标志编号和生产许可证号是不是一回事?
福州赛虎软件技术有限公司怎么样?和福建伊时
我欠债六万为什么网上借不到钱了呢
周星驰有钱还是王晶有钱
瑞士美施化妆品里面有激素没
告诉我关于陶朱公"范蠡"这个名字的由来!!
盛传系统设置被隐藏了怎么办
微信玩的穿越火线怎么在电脑上玩
往事如梦似云烟是什么意思请问这句话出自哪里
求曹丕所有的诗词歌赋
请问我的M-AUDIO AP2496声卡和ETEK 12路调音
我到年24了,我是应该继续寻找我喜欢的,还是
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?