私はXSLTを時折行います。だから私はそれについて何かを理解していないかもしれない。XSLで<br>タグを閉じる必要があるのはなぜですか?
ない例が必要ですが、ここにあるかどうかを確認してください。 XMLは非常に簡単です:
<a></a>
XSL:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:apply-templates select="a"/>
</xsl:template>
<xsl:template match="a">
<html>
<head>
<title>Title</title>
</head>
<body><br></body>
</html>
</xsl:template>
</xsl:stylesheet>
Javaコード:
public static String transform(String xml, String xsl) throws TransformerException {
StreamSource xslT = new StreamSource(new StringReader(xsl));
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(xslT);
StreamSource source = new StreamSource(new StringReader(xml));
StringWriter out = new StringWriter();
StreamResult result = new StreamResult(out);
transformer.transform(source, result);
return out.toString();
}
Iスタイルシートの出力タイプとしてhtml
を使用すると、有効なhtmlタグとして<br>
を認識する必要があります。
一般的に...なぜhtmlの妥当性が気になるのですか?私は変数を宣言すればそれも気づいた。たとえば、
<xsl:variable name="someTable">
<table class="common" bgcolor="#DDDDDD">
</xsl:variable>
同じエラーが報告されます。
私の目標は、無効なhtmlの作成ではありません。変数を宣言したいだけです(後で処理ロジックに応じて<table>
を閉じます)。
これを回避する方法はありますか、出力タイプとしてtext
を使用する必要がありますか。
ああ。私はoutputメソッド= "html"オプションからあまり期待していないようです。だから、私は質問で言及したことをするために出力メソッド= "テキスト"を使わなければならないのですか? – ka3ak
いいえ、絶対にありません。その直列化ではなく、ツリーに注目してください。 –