要素内の文字に基づいて、以下の XML を変換する必要があります。以下の XSLT 1.0 を試しました。<mo>
要素では、 forと{
は}
|text{| に変換する必要があります。と |テキスト}| それぞれ。for {
and}
は |cbo| に変換する必要があります。と |cbc| それぞれ。しかし、私は '|(text}||(text{||(text}||(text{| for the contents in
` 要素
サンプル XML:
<chapter xmlns="http://www.w3.org/1998/Math/MathML"><p><math display='block'><mo>{</mo><mo>{</mo><mo>}</mo><mo>}</mo></math></p></chapter>
XSLT 1.0 が試した:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML">
<xsl:output method="xml" encoding="UTF-8" indent="no"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@* | node()"><xsl:copy><xsl:apply-templates select="@* | node()"/>
</xsl:copy></xsl:template>
<xsl:template match="m:mo">
<xsl:choose>
<xsl:when test="(.)='{'"><xsl:text disable-output-escaping="yes">|(text{|</xsl:text>
</xsl:when>
<xsl:when test="(.)='}'"><xsl:text disable-output-escaping="yes">|(text}|</xsl:text>
</xsl:when>
<xsl:when test="(.)='{'"><xsl:text disable-output-escaping="yes">|cbo|</xsl:text></xsl:when>
<xsl:when test="(.)='}'"><xsl:text disable-output-escaping="yes">|cbc|</xsl:text></xsl:when>
</xsl:choose></xsl:template></xsl:stylesheet>