HTMLを出力する変換があります。<img />
古いブラウザで(たとえばではなく)壊れてしまう可能性のある自己終了タグを回避するには、 <img></img>
output-methodをである必要がありますhtml
。次に、URLエンコードが適用されるため、アプリケーションが破損します。たとえば、次を参照してください。
入力
<html>
<head>
</head>
<body>
{{example}}
<a href="{{example}}" >abc</a>
<img src="http://placehold.it/20x20"></img>
</body>
</html>
変身
<?xml version="1.0" encoding="utf-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" /><!-- either -->
<xsl:output method="html" indent="yes" /><!-- or -->
<xsl:template match="@*|node()">
<xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
</xsl:transform>
最初のケースでは、出力は次のとおりです。
<?xml version="1.0"?>
<html>
<head>
</head>
<body>
{{example}}
<a href="{{example}}">abc</a>
<img src="http://placehold.it/20x20"/>
</body>
</html>
2番目の場合、出力は次のとおりです。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
{{example}}
<a href="%7B%7Bexample%7D%7D">abc</a>
<img src="http://placehold.it/20x20">
</body>
</html>
最初のケースの良い点は、@href
属性がURLエンコードされていないことです。これは私のアプリケーションの必需品です。しかし、2番目のバリアントによってより良く達成されるのは悪いことですが、それ<img>
は自己閉鎖的であるということです。<img>
これは、タグやその他のものであってはなりません。
method="html"
URLエンコードなしでメリットを得る方法はありますか?はいの場合、どのように?