XSL を使用して基本的な XML を表示する Wicket アプリケーションを作成します。w3schools チュートリアルでコードを解析すると、すべてが機能します。Wickets XsltTransformerBehavior を使用すると、基本的なテーブル構造のみが表示され、値は表示されません。
XML:
<ecgreport timestamp="2000-01-01 00:00:00">
<patient>
<id>1</id>
<name>xyz</name>
<sex>male</sex>
<birthdate>1900-01-01 12:00:00</birthdate>
</patient>
</ecgreport>
XSL:
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h3>CDA Report <xsl:value-of select="ecgreport/@timestamp"/></h3>
<table border="1">
<tr bgcolor="#9acdff">
<th>title</th>
<th><xsl:text>value</xsl:text></th>
</tr>
<tr>
<td>name</td>
<td><xsl:value-of select="ecgreport/patient/name"/></td>
</tr>
<tr>
<td>sex</td>
<td><xsl:value-of select="ecgreport/patient/id"/></td>
</tr>
<tr>
<td>birthdate</td>
<td><xsl:value-of select="ecgreport/patient/birthdate"/></td>
</tr>
</table>
</body>
</html>
</xsl:template>
W3School は次のように報告します (これが私の望みです)。
ウィケットは私にそれを残します:
Wicket コード スニペット。「データ」は ResultSet からのもので、System.out は上記の xml を示しています。
XsltTransformerBehavior xslb = new XsltTransformerBehavior("ecg1.xsl");
xsl = new Label("last_cda",rs.getString("data"));
xsl.setEscapeModelStrings(false);
xsl.add(xslb);
add(xsl);
Chrome、Firefox、IE10 で試してみましたが、今ではすべて XSL をサポートしていると思います。変換ステップ内でデータを失っていると思います。入力に DOM オブジェクトが必要ですか? または、別の初心者の間違いを犯しましたか?
ご協力いただきありがとうございます