1

<fraction d="2" n="1">タグ付きのファイルがあります。これを次のように変換する必要があり&frac12;ます。

<xsl:template match="fraction">
  <xsl:text>&frac</xsl:text>
    <xsl:value-of select="@n"/>
    <xsl:value-of select="@d"/>
  <xsl:text>;</xsl:text>
</xsl:template>

しかし、おそらく&fracを参照しているため、エラーが発生します

4

2 に答える 2

2

これは私にとってはうまくいくようです(xslt 1.0):

<xsl:template match="/">
  <xsl:text disable-output-escaping="yes">&amp;frac</xsl:text>
  <xsl:value-of select="@n"/>
  <xsl:value-of select="@d"/>
  <xsl:text>;</xsl:text>
</xsl:template>
于 2013-03-27T19:42:23.970 に答える
1

DOE は必要ありません(そして、DOE の使用は単に趣味が悪いだけではありません!):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:my="my:my">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <my:fractions>
  <frac14>&#188;</frac14>
  <frac12>&#189;</frac12>
  <frac34>&#190;</frac34>
  <frac18>&#8539;</frac18>
  <frac38>&#8540;</frac38>
  <frac58>&#8541;</frac58>
  <frac78>&#8542;</frac78>
 </my:fractions>

 <xsl:variable name="vFracs" select="document('')/*/my:fractions/*"/>

 <xsl:template match="fraction">
     <xsl:value-of select="$vFracs[name()= concat('frac', current()/@n, current()/@d)]"/>
 </xsl:template>
</xsl:stylesheet>

この変換が提供された XML ドキュメントに適用されると、次のようになります。

<fraction d="2" n="1"/>

必要な正しい結果が生成されます。

½
于 2013-03-28T02:17:16.247 に答える