0

次の単純な Diazo ルール ファイルがあります。

<rules
  xmlns="http://namespaces.plone.org/diazo"
  xmlns:css="http://namespaces.plone.org/diazo/css"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <theme href="theme/theme.html" />

  <replace css:theme-children="#content" css:content-children=".content" />

</rules>

とテーマ:

<html>
  <body>
    <div id="content">
        Lorem ipsum ...
    </div>
  </body>
</html>

変換したいソースは次のとおりです。

<html>
  <body>
    <div class="content">
        <a href="&#0109;&#0097;&#0105;lt&#0111;&#0058;info&#0064;example&#46;org">info</a>
    </div>
  </body>
</html>

私が得るものは

... <a href="mailto:info@example.org">info</a> ...

しかし、href 属性の HTML エンティティをそのまま維持したいと考えています。ディアゾでこれを行うにはどうすればよいですか?

4

1 に答える 1

0

数字参照はエンティティ参照ではないため、タイトルが少し誤解を招くことに注意してください (「& nbsp ;」などのエンティティ参照を保持するかどうかの答えは大きく異なります)。

Diazoはわかりませんが、追加するとXSLTで

 <xsl:output encoding="US-ASCII"/>

ドキュメントに追加すると、非ASCII文字は数値参照を使用して出力されます。

ただし、あなたの例では、実際には「。」などの引用符で囲まれたASCII文字です。なので "。" xslt 1 にはそれを行うための標準的な方法はありません (ドキュメントが適合する html または xml システムによって処理される場合、それを行う理由はないはずです)。そのようなシステムは、処理が開始される前に、これらの参照を文字に展開します。(これが、XSLT がそれらを保持できない理由です。XSLT が入力データを見る前に、xml パーサーによってそれらが削除されています。)

于 2012-10-22T14:00:30.853 に答える