簡體   English   中英

如何使用jaxb在xml文件中創建表?

[英]How to create table in xml file using jaxb?

我是JAXB的新手,我嘗試使用Jaxb在xml文件中創建表格格式,但是無法按預期工作。

預期產量

<root>
        <table border="1" width="100%">
            <thead>
                <tr><th>personalDetails</th><th>Date</th><th>Status</th></tr>
            </thead>
            <tbody>
                <tr><td>Ricky,anderson</td><td>Nov 1999</td><td>working</td></tr>
                <tr><td>Mackey,manson</td><td>Nov 1979</td><td>completed</td></tr>
                <tr><td>Corney,Richson</td><td>Nov 1989</td><td>pending</td></tr>   
            </tbody>
        </table>
</root>

到目前為止,我已經嘗試過

@XmlRootElement(name = "table")
public class Table {


        String table;
        String thread;
        String border;
        String width;
        String tbody;
        public String getTbody() {
            return tbody;
        }
        @XmlElement(name = "tbody")
        public void setTbody(String tbody) {
            this.tbody = tbody;
        }

        public String getThread() {
            return thread;
        }

        @XmlElement(name = "thread")
        public void setThread(String thread) {
            this.thread = thread;
        }

        public String getBorder() {
            return border;
        }

        @XmlAttribute(name = "border")
        public void setBorder(String border) {
            this.border = border;
        }
        @XmlAttribute(name = "width")
        public void setWidth(String width) {
            this.width = width;
        }
        public String getWidth() {
            return width;
        }
}

根元素類。我也在這個類中掙扎,

@XmlRootElement(name = "text")
public class RootTable {

    Table table;

    public Table getTable() {
        return table;
    }

    public void setTable(Table table) {
        this.table = table;
    }

主班

public class Test {

    public static void main(String[] args) throws JAXBException {

        Table table = new Table();
        table.setThread("<tr><th>personalDetails</th><th>Date</th><th>Status</th></tr>");
        table.setWidth("15");
        table.setBorder("100");
        table.setTbody("<tr><td>Ricky,anderson</td><td>Nov 1999</td>td>working</td></tr>");
        RootTable too = new RootTable();
        too.setTable(table);
            JAXBContext jaxbContext = JAXBContext.newInstance(RootTable.class);
    Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

    // output pretty printed
    jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

    //jaxbMarshaller.marshal(customer, file);
    jaxbMarshaller.marshal(too, System.out);

            }
}

如果我運行程序,它將顯示以下輸出

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<text>
    <table width="15" border="100">
        <tbody>&lt;tr&gt;&lt;td&gt;Ricky,anderson&lt;/td&gt;&lt;td&gt;Nov 1999&lt;/td&gt;td&gt;working&lt;/td&gt;&lt;/tr&gt;</tbody>
        <thread>&lt;&lt;tr&gt;&lt;th&gt;personalDetails&lt;/th&gt;&lt;th&gt;Date&lt;/th&gt;&lt;th&gt;Status&lt;/th&gt;&lt;/tr&gt;</thread>
    </table>
</text>

我不知道該如何進行? 那里還有其他選擇嗎? 有人能幫我嗎。

要解決該問題,請繼續進行建模。 您必須創建TrTd類,並將這些類的實例添加到表中,而不是添加完整的字符串。

但是,我完全同意提到使用JAXB生成HTML並不是最好的想法。 我不知道您的最終目標是什么,但是盡管從理論上講HTML是XML的子集,但是有更好的工具可以使用它。

我可以提到的是,我個人使用XML解析技術來處理HTML,但是還有其他一些限制使我不得不這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM