Documnet:
<body><div><text>aaaaaa<text></div></body>现在通过JDOM解析DOCUMENT得到一个Element:
<div><text>aaaaaa<text></div>请问各位,怎么把这Element转化为String 类型呢?DOCUMENT怎么转我知道的,就不知道Element怎么弄.

解决方案 »

  1.   

    就是得到一个String str ="<div> <text>aaaaaa <text> </div> ";
      

  2.   

    var newList=xmlDom.getElementsByTagName("text");
    var str= newList[i].getElementsByTagName("text").nodeValue();
    newList是一个数组,如果元素只有一个就不用什么数组了直接就下面这句话就可以了
      

  3.   

    Element是一个元素,将它转化成String?
    你是想得到这个元素中的值的吧? 
      

  4.   

    2楼的,你的方法我试过了,不行啊.
    你那是不是java jdom下的方法啊?我要求的就是通过ELEMENT得到它的XML字符串,不象3楼说的求值.
      

  5.   

    楼主是不是这个意思:    Element e=....(获得Element)
        String str = e.asXML();
        System.out.println(str);是得到这个str吗?
      

  6.   

    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;
    }
      

  7.   

    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(""); }
      

  8.   


    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"
      

  9.   

    7楼的,String str = e.asXML(); 
    我想得到的就是你这意思,不过,Jdom里没有你这方法啊!!
      

  10.   

    8楼的,谢谢你发了这么多参考代码,可是我要的是jdom的啊,dom4j不一样的
      

  11.   

    具体代码忘了,,你可以调用Element的相应方法的,用IDE写的话应该就有提示!!
      

  12.   

    刚才查了下,,你可以这样<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;
    }大概就是这个样子的,,如果有什么不妥的地方你自己慢慢调一下就是了。。
      

  13.   

    导入 dom4j 的包 用 String str = e.asXML();  不就可以了有轮子就拿来用,不用重复制造轮子
      

  14.   

    谢谢15楼的,这种思路不错,我弄弄看.16楼的,我现在整个系统都用的Jdom,所以dom4j不行的,还是谢谢了.