Documnet:
<body><div><text>aaaaaa<text></div></body>现在通过JDOM解析DOCUMENT得到一个Element:
<div><text>aaaaaa<text></div>请问各位,怎么把这Element转化为String 类型呢?DOCUMENT怎么转我知道的,就不知道Element怎么弄.
<body><div><text>aaaaaa<text></div></body>现在通过JDOM解析DOCUMENT得到一个Element:
<div><text>aaaaaa<text></div>请问各位,怎么把这Element转化为String 类型呢?DOCUMENT怎么转我知道的,就不知道Element怎么弄.
var str= newList[i].getElementsByTagName("text").nodeValue();
newList是一个数组,如果元素只有一个就不用什么数组了直接就下面这句话就可以了
你是想得到这个元素中的值的吧?
你那是不是java jdom下的方法啊?我要求的就是通过ELEMENT得到它的XML字符串,不象3楼说的求值.
String str = e.asXML();
System.out.println(str);是得到这个str吗?
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;
}
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(""); }
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"
我想得到的就是你这意思,不过,Jdom里没有你这方法啊!!
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;
}大概就是这个样子的,,如果有什么不妥的地方你自己慢慢调一下就是了。。