2014-11-06 1 views
2

Я пытаюсь эмулировать создание таблицы через xslt. У меня эти две классные модели.JAXB marshalling в таблицу HTML через XSLT содержит пустые значения

запись Таблица содержит строки:

@XmlRootElement(name = "table") 
@XmlType(propOrder = { "header", "rows" }) 
public class TableEntry extends PropertyEntry { 

    private String header; 

    private final List<TableRowEntry> rows = new ArrayList<TableRowEntry>(); 

    @XmlElement(name = "row", required = true) 
    public List<TableRowEntry> getRows() { 
     return rows; 
    } 

    public String getHeader() { 
     return header; 
    } 

    @XmlAttribute 
    public void setHeader(String header) { 
     this.header = header; 
    } 
} 

Тогда я TableRowEntry модель класса:

@XmlRootElement(name = "tableRow") 
public class TableRowEntry implements Reportable { 

    private List<String> cells = new ArrayList<String>(); 

    @XmlElement(name = "cell") 
    public List<String> getCells() { 
     return cells; 
    } 

    public void setCells(List<String> cells) { 
     this.cells = cells; 
    } 
} 

и у меня есть это в шаблоне XSL

<xsl:for-each select="table"> 
    <table> 
     <xsl:if test="@header"> 
      <th><xsl:value-of select="@header"/></th> 
     </xsl:if> 
     <xsl:for-each select="row"> 
      <tr> 
       <xsl:for-each select="cell"> 
        <td><xsl:value-of select="cell"/></td> 
       </xsl:for-each> 
      </tr> 
     </xsl:for-each> 
    </table> 
</xsl:for-each> 

Тогда я это сделать, и я marshall it

TableEntry tableEntry = new TableEntry(); 
tableEntry.setHeader("This is my header"); 

TableRowEntry tableRow = new TableRowEntry(); 
tableRow.setCells(Arrays.asList("cell", "cell2", "cell3")); 

TableRowEntry tableRow2 = new TableRowEntry(); 
tableRow2.setCells(Arrays.asList("cell4", "cell5", "cell6")); 

tableEntry.getRows().add(tableRow); 
tableEntry.getRows().add(tableRow2); 

Всякий раз, когда я сортирую его в HTML, в ячейках есть пустые значения, почему? Когда я сортирую его в XML, эти значения в ячейках есть, но я не могу выбрать это значение в xsl-шаблоне. Зачем?

В файле HTML есть две строки с тремя ячейками в каждой строке, но эти ячейки пусты.

Я использую затмение Moxy

ответ

1

Мне нужно использовать это, чтобы выбрать это значение:

<td><xsl:value-of select="."/></td> 
Смежные вопросы