关与jdom 解析XML的问题,帮帮忙啊@!

tgcx111 2009-09-17 06:24:30
Documnet:
<body><div><text>aaaaaa<text></div></body>

现在通过JDOM解析DOCUMENT得到一个Element:
<div><text>aaaaaa<text></div>

请问各位,怎么把这Element转化为String 类型呢?

DOCUMENT怎么转我知道的,就不知道Element怎么弄.

...全文
165 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
tgcx111 2009-09-19
  • 打赏
  • 举报
回复
谢谢15楼的,这种思路不错,我弄弄看.

16楼的,我现在整个系统都用的Jdom,所以dom4j不行的,还是谢谢了.
西瓜 2009-09-19
  • 打赏
  • 举报
回复
导入 dom4j 的包 用 String str = e.asXML(); 不就可以了

有轮子就拿来用,不用重复制造轮子
yqsshr 2009-09-19
  • 打赏
  • 举报
回复
刚才查了下,,你可以这样<body> <div> <text>aaaaaa <text> </div> </body>

public List getText() {
List texts = new ArrayList();
doc = loadFile("xxx.xml"); //导入你的xml文件
Element root = doc.getRootElement(); //取得该xml文件的根元素(body)
List list = root.getChildren("div"); //取得div元素,放入list集合
for(int i=0; i<list.size(); i++) {
Element div=(Element)list.get(i);
texts.add(div.getChildText("text")); //将取得的内容放入texts集合
}
return texts;
}

大概就是这个样子的,,如果有什么不妥的地方你自己慢慢调一下就是了。。
yqsshr 2009-09-19
  • 打赏
  • 举报
回复
具体代码忘了,,你可以调用Element的相应方法的,用IDE写的话应该就有提示!!
tgcx111 2009-09-19
  • 打赏
  • 举报
回复
星期二结贴..在等!!!
pgwcumt 2009-09-18
  • 打赏
  • 举报
回复
楼主是不是这个意思:

Element e=....(获得Element)
String str = e.asXML();
System.out.println(str);

是得到这个str吗?
tgcx111 2009-09-18
  • 打赏
  • 举报
回复
2楼的,你的方法我试过了,不行啊.
你那是不是java jdom下的方法啊?

我要求的就是通过ELEMENT得到它的XML字符串,不象3楼说的求值.
luxiaoshuai 2009-09-18
  • 打赏
  • 举报
回复
2 楼说的对.
tgcx111 2009-09-18
  • 打赏
  • 举报
回复
8楼的,谢谢你发了这么多参考代码,可是我要的是jdom的啊,dom4j不一样的
tgcx111 2009-09-18
  • 打赏
  • 举报
回复
7楼的,String str = e.asXML();
我想得到的就是你这意思,不过,Jdom里没有你这方法啊!!
config_man 2009-09-18
  • 打赏
  • 举报
回复
Element是一个元素,将它转化成String?
你是想得到这个元素中的值的吧?
zhanghua4109 2009-09-18
  • 打赏
  • 举报
回复

public void createbody_credit(String m_sEntryID, String m_sCode,
String m_sAbstract1, String m_sQuantity) {

Element entry = voucher_body.addElement("entry");

entry.addComment("分录号,不能为空");
Element entry_id = entry.addElement("entry_id");
entry_id.addText(m_sEntryID);

entry.addComment("科目,不能为空");
Element account_code = entry.addElement("account_code");
account_code.addText(m_sCode);

entry.addComment("摘要,不能为空");
Element abstract1 = entry.addElement("abstract");
abstract1.addText(m_sAbstract1);

entry.addComment("结算方式,可以为空");
Element settlement = entry.addElement("settlement");
settlement.addText("");

entry.addComment("票据号,可以为空");
Element document_id = entry.addElement("document_id");
document_id.addText("");

entry.addComment("票据日期,可以为空");
Element document_date = entry.addElement("document_date");
document_date.addText("");

entry.addComment("币种,不能为空");
Element currency = entry.addElement("currency");
currency.addText("人民币");

entry.addComment("单价,可以为空");
Element unit_price = entry.addElement("unit_price");
unit_price.addText("0.00000000");

entry.addComment("汇率1,主辅币核算时使用,折辅汇率,可以为空");
Element exchange_rate1 = entry.addElement("exchange_rate1");
exchange_rate1.addText("0.00000000");

entry.addComment("汇率2,折本汇率,可以为空");
Element exchange_rate2 = entry.addElement("exchange_rate2");
exchange_rate2.addText("0.00000000");

entry.addComment("借方数量,可以为空");
Element debit_quantity = entry.addElement("debit_quantity");
debit_quantity.addText("0.00000000");

entry.addComment("原币借方发生额,不能为空");
Element primary_debit_amount = entry.addElement("primary_debit_amount");
primary_debit_amount.addText("0.00000000");

entry.addComment("辅币借方发生额,可以为空");
Element secondary_debit_amount = entry
.addElement("secondary_debit_amount");
secondary_debit_amount.addText("0.00000000");

entry.addComment("本币借方发生额,不能为空");
Element natural_debit_currency = entry
.addElement("natural_debit_currency");
natural_debit_currency.addText("0.00000000");

entry.addComment("贷方数量,可以为空");
Element credit_quantity = entry.addElement("credit_quantity");
credit_quantity.addText(m_sQuantity);

entry.addComment("原币贷方发生额,不能为空");
Element primary_credit_amount = entry
.addElement("primary_credit_amount");
primary_credit_amount.addText("0.00000000");

entry.addComment("辅币贷方发生额,可以为空");
Element secondary_credit_amount = entry
.addElement("secondary_credit_amount");
secondary_credit_amount.addText("0.00000000");

entry.addComment("本币贷方发生额,不能为空");
Element natural_credit_currency = entry
.addElement("natural_credit_currency");
natural_credit_currency.addText(m_sQuantity);

if(!auxiliary_type.trim().equals("")){
entry.addComment("辅住核算");
Element auxiliary_accounting = entry
.addElement("auxiliary_accounting");
Element item=auxiliary_accounting.addElement( "item" );
item.addAttribute("name", auxiliary_type);
item.addText(auxiliary_da);
}

entry.addComment("原始单据类型,可以为空");
Element bill_type = entry.addElement("bill_type");
bill_type.addText("0.00000000");

entry.addComment("原始单据编号, 可以为空");
Element bill_id = entry.addElement("bill_id");
bill_id.addText("");

entry.addComment("原始单据日期,可以为空");
Element bill_date = entry.addElement("bill_date");
bill_date.addText("");

}

public void createExcelTOXml() {
try {

OutputFormat format = new OutputFormat(" ", true, "gb2312"); // 设置输出格式为空两格,换行,编码为utf-8
XMLWriter writer = new XMLWriter(new FileWriter("d:/voucher/"+voucher_id+".xml"),
format); // 创建输出对象
writer.write(xmlfile);
writer.close();

} catch (Exception e) {
e.printStackTrace();
}
}
} // @jve:decl-index=0:visual-constraint="10,10"
zhanghua4109 2009-09-18
  • 打赏
  • 举报
回复
public void createheader(String m_sCompany, String m_sType, String m_sYear,
String m_sPeriod, String m_sId, String m_sDate, String m_sEnter) {
xmlfile = DocumentHelper.createDocument();
root = xmlfile.addElement("ufinterface");
/**
* 根节点说明
*/
root.addAttribute("roottag", "voucher");
root.addAttribute("billtype", "gl");
root.addAttribute("replace", "Y");
root.addAttribute("receiver", "1011@106-0003");
root.addAttribute("sender", "009");
root.addAttribute("isexchange", "Y");
root.addAttribute("filename", "凭证样本数据文件.xml");
root.addAttribute("proc", "add");
// root.addAttribute("operation", "req");

voucher = root.addElement("voucher");
voucher.addAttribute("id", m_sId);
Element voucher_head = voucher.addElement("voucher_head");

/**
* 凭证表头
*/
voucher_head.addComment("公司主键 ,不能为空,需要参照基础数据(公司目录)");
Element company = voucher_head.addElement("company");
company.addText(m_sCompany);

voucher_head.addComment("凭证类别,不能为空,需要参照基础数据(凭证类别)");
Element voucher_type = voucher_head.addElement("voucher_type");
voucher_type.addText(m_sType);

voucher_head.addComment("会计年度,不能为空");
Element fiscal_year = voucher_head.addElement("fiscal_year");
fiscal_year.addText(m_sYear);

voucher_head.addComment("会计期间,不能为空");
Element accounting_period = voucher_head
.addElement("accounting_period");
accounting_period.addText(m_sPeriod);

voucher_head.addComment("凭证号,不能为空");
Element voucher_id = voucher_head.addElement("voucher_id");
voucher_id.addText(m_sId);

voucher_head.addComment("附单据数,不能为空");
Element attachment_number = voucher_head
.addElement("attachment_number");
attachment_number.addText("0");

voucher_head.addComment("制单日期,不能为空");
Element prepareddate = voucher_head.addElement("date");
prepareddate.addText(m_sDate);

voucher_head.addComment("制单人,不能为空");
Element enter = voucher_head.addElement("enter");
enter.addText(m_sEnter);

voucher_head.addComment("出纳,可以为空");
Element cashier = voucher_head.addElement("cashier");
cashier.addText("");

voucher_head.addComment("是否已签字,不能为空,默认为N");
Element signature = voucher_head.addElement("signature");
signature.addText("N");

voucher_head.addComment("审核人,可以为空");
Element checker = voucher_head.addElement("checker");
checker.addText("");

voucher_head.addComment("记账日期,可以为空");
Element posting_date = voucher_head.addElement("posting_date");
posting_date.addText("");

voucher_head.addComment("记账人,可以为空");
Element posting_person = voucher_head.addElement("posting_person");
posting_person.addText("");

voucher_head.addComment("来源系统,不能为空");
Element voucher_making_system = voucher_head
.addElement("voucher_making_system");
voucher_making_system.addText("外部系统交换平台");

voucher_head.addComment("备注,可以为空");
Element memo1 = voucher_head.addElement("memo1");
memo1.addText("");
Element memo2 = voucher_head.addElement("memo2");
memo2.addText("");

voucher_head.addComment("保留项,可以为空");
Element reserve1 = voucher_head.addElement("reserve1");
reserve1.addText("");
Element reserve2 = voucher_head.addElement("reserve2");
reserve2.addText("");

voucher_body = voucher.addElement("voucher_body");
}

public void createbody_debit(String m_sEntryID, String m_sCode,
String m_sAbstract1, String m_sQuantity,String auxiliary_type,String auxiliary_da) {

Element entry = voucher_body.addElement("entry");

// entry.addComment("分录号,不能为空");
Element entry_id = entry.addElement("entry_id");
entry_id.addText(m_sEntryID);

// entry.addComment("科目,不能为空");
Element account_code = entry.addElement("account_code");
account_code.addText(m_sCode);

// entry.addComment("摘要,不能为空");
Element abstract1 = entry.addElement("abstract");
abstract1.addText(m_sAbstract1);

// entry.addComment("结算方式,可以为空");
Element settlement = entry.addElement("settlement");
settlement.addText("");

// entry.addComment("票据号,可以为空");
Element document_id = entry.addElement("document_id");
document_id.addText("");

// entry.addComment("票据日期,可以为空");
Element document_date = entry.addElement("document_date");
document_date.addText("");

// entry.addComment("币种,不能为空");
Element currency = entry.addElement("currency");
currency.addText("人民币");

// entry.addComment("单价,可以为空");
Element unit_price = entry.addElement("unit_price");
unit_price.addText("0.00000000");

// entry.addComment("汇率1,主辅币核算时使用,折辅汇率,可以为空");
Element exchange_rate1 = entry.addElement("exchange_rate1");
exchange_rate1.addText("0.00000000");

// entry.addComment("汇率2,折本汇率,可以为空");
Element exchange_rate2 = entry.addElement("exchange_rate2");
exchange_rate2.addText("0.00000000");

// entry.addComment("借方数量,可以为空");
Element debit_quantity = entry.addElement("debit_quantity");
debit_quantity.addText(m_sQuantity);

// entry.addComment("原币借方发生额,不能为空");
Element primary_debit_amount = entry.addElement("primary_debit_amount");
primary_debit_amount.addText("0.00000000");

// entry.addComment("辅币借方发生额,可以为空");
Element secondary_debit_amount = entry
.addElement("secondary_debit_amount");
secondary_debit_amount.addText("0.00000000");

// entry.addComment("本币借方发生额,不能为空");
Element natural_debit_currency = entry
.addElement("natural_debit_currency");
natural_debit_currency.addText(m_sQuantity);

// entry.addComment("贷方数量,可以为空");
Element credit_quantity = entry.addElement("credit_quantity");
credit_quantity.addText("0.00000000");

// entry.addComment("原币贷方发生额,不能为空");
Element primary_credit_amount = entry
.addElement("primary_credit_amount");
primary_credit_amount.addText("0.00000000");

// entry.addComment("辅币贷方发生额,可以为空");
Element secondary_credit_amount = entry
.addElement("secondary_credit_amount");
secondary_credit_amount.addText("0.00000000");

// entry.addComment("本币贷方发生额,不能为空");
Element natural_credit_currency = entry
.addElement("natural_credit_currency");
natural_credit_currency.addText("0.00000000");

if(!auxiliary_type.trim().equals("")){
entry.addComment("辅住核算");
Element auxiliary_accounting = entry
.addElement("auxiliary_accounting");
Element item=auxiliary_accounting.addElement( "item" );
item.addAttribute("name", auxiliary_type);
item.addText(auxiliary_da);
}


entry.addComment("原始单据类型,可以为空");
Element bill_type = entry.addElement("bill_type");
bill_type.addText("0.00000000");

entry.addComment("原始单据编号, 可以为空");
Element bill_id = entry.addElement("bill_id");
bill_id.addText("");

entry.addComment("原始单据日期,可以为空");
Element bill_date = entry.addElement("bill_date");
bill_date.addText("");

}
zhanghua4109 2009-09-18
  • 打赏
  • 举报
回复
package nc.ui.test;

import nc.ui.pub.ButtonObject;
import nc.ui.pub.ToftPanel;
import nc.ui.pub.beans.UIFileChooser;
import nc.vo.pfxx.pub.BillInfoVO;
import nc.vo.pub.lang.UFDate;

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileWriter;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class createxml extends JFrame {

String fiscal_year = ""; // 会计年度

String accounting_period = "";// 会计期间

String prepareddate = "";// 制单日期

String enter = ""; // 制单人

String entry_id = "";// 分录号

String m_sabstract = "";// 摘要

String account_code = ""; // 会计科目

String debit_quantity = ""; // 借方金额

String credit_quantity = ""; // 贷方金额

String voucher_type = ""; // 凭证类别

String voucher_id = ""; // 凭证号

String auxiliary_type = ""; // 辅助核算类型

String auxiliary_da = ""; // 辅助核算档案

JButton btn1 = new JButton("打开文件");

JPanel pane1 = new JPanel();

CardLayout cl = new CardLayout();

public Document xmlfile = null;

public Element root = null;

public Element voucher = null;

Element voucher_body = null;

public createxml() {
super("EXCEL转XML文件");

pane1.add(btn1);

btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.print("sss");
try {
dataimport();
// createheader();
// createbody();
createExcelTOXml();
} catch (Exception e1) {
e1.printStackTrace();
return;
}
}
});

this.setContentPane(pane1);
this.setSize(300, 200);
this.setLocation(20, 20);
this.show();

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

public static void main(String[] args) {
new createxml();
}

public void dataimport() throws Exception {
UIFileChooser fileChooser = null;
Workbook wb = null;
Sheet sheet = null;
String fileName = "";

try {
fileChooser = new nc.ui.pub.beans.UIFileChooser();
fileChooser.setFileFilter(new javax.swing.filechooser.FileFilter() {

public String getDescription() {
return "Excel(.xls)";
}

public boolean accept(java.io.File f) {
String name;
if (f.isDirectory())
return true;
name = f.getName().toLowerCase();
if (name.endsWith(".xls"))
return true;
else
return false;
}
});

if (fileChooser.showOpenDialog(this) == nc.ui.pub.beans.UIFileChooser.APPROVE_OPTION) {
fileName = fileChooser.getSelectedFile().toString();
fileName = fileName.endsWith(".xls") ? fileName : fileName
+ ".xls";
} else {
System.out.println("Cancel");
return;
}
System.out.println(fileName);

java.io.File excel = new java.io.File(fileName);

wb = Workbook.getWorkbook(excel);

sheet = wb.getSheet(0);
} catch (Exception e) {
e.printStackTrace();
return;
}

int rows = sheet.getRows(); // 取得行数
int cs = sheet.getColumns(); // 取得列数
boolean flag = true;
String num_No = "";

String[] strHeads = new String[cs];

for (int rowid = 0; rowid < rows; rowid++) {
BillInfoVO m_vo = new BillInfoVO();
if (rowid == 0) {
strHeads = convertCell(sheet.getRow(0));
continue;
}
Cell[] cells = sheet.getRow(rowid);
String[] strs = convertCell(cells);

fiscal_year = strs[0].trim(); // 会计年度
accounting_period = strs[1].trim(); // 会计期间
prepareddate = strs[2].trim();// 制单日期
voucher_type = strs[3].trim();// 凭证类别
// voucher_id = strs[4].trim();// 凭证号
enter = strs[6].trim(); // 制单人
entry_id = strs[12].trim();// 分录号
m_sabstract = strs[13].trim();// 摘要
account_code = strs[14].trim(); // 会计科目
debit_quantity = strs[15].trim(); // 借方金额
credit_quantity = strs[16].trim(); // 贷方金额
auxiliary_type = strs[17].trim(); // 辅助核算类型
auxiliary_da = strs[18].trim(); // 辅助核算档案

if (!strs[4].trim().equals(voucher_id)) {
createheader("106", voucher_type, fiscal_year,
accounting_period, strs[4].trim(), prepareddate, enter);
// 如查借方为空那么就是贷方
if(debit_quantity.equals("")){
createbody_credit(entry_id, account_code, m_sabstract,
credit_quantity);
}else{
createbody_debit(entry_id, account_code, m_sabstract,
debit_quantity,auxiliary_type,auxiliary_da);
}

} else {
// 有两个借方
if(!debit_quantity.equals("")){
createbody_debit(entry_id, account_code, m_sabstract,
debit_quantity,auxiliary_type,auxiliary_da);
}else{
createbody_credit(entry_id, account_code, m_sabstract,
credit_quantity);
}
}

voucher_id = strs[4].trim(); // 凭证号

createExcelTOXml();

}

}

public String[] convertCell(Cell[] rowcell) {
String[] head = new String[rowcell.length];
for (int i = 0; i < rowcell.length; i++)
head[i] = rowcell[i].getContents();
return head;
}

javaee_ssh 2009-09-17
  • 打赏
  • 举报
回复
2楼说的对
浴火涅磐 2009-09-17
  • 打赏
  • 举报
回复
var newList=xmlDom.getElementsByTagName("text");
var str= newList[i].getElementsByTagName("text").nodeValue();
newList是一个数组,如果元素只有一个就不用什么数组了直接就下面这句话就可以了
tgcx111 2009-09-17
  • 打赏
  • 举报
回复
就是得到一个String str ="<div> <text>aaaaaa <text> </div> ";

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧