2

xml ファイルがあります。xml 要素のいくつかのスタイルを xsl で変更したいので、xsl ファイルも 1 つ持っています。次に、ブラウザで変更を確認したいのですが、どうすればよいかわかりません。

xml ファイル:(test.xml)

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test2.xsl"?>


<root>
    <Text Style='style1'></Text>
    <Text Style='style2'></Text>
</root>

xsl ファイル:(test.xsl)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output indent="yes"/>
    <xsl:output method="html"/>
    <xsl:attribute-set name="style1">
        <xsl:attribute name="Font">Arial</xsl:attribute>
        <xsl:attribute name="Bold">true</xsl:attribute>
        <xsl:attribute name="Color">Red</xsl:attribute>
    </xsl:attribute-set>
    <xsl:attribute-set name="style2">
        <xsl:attribute name="Font">Sans</xsl:attribute>
        <xsl:attribute name="Italic">true</xsl:attribute>
    </xsl:attribute-set>
    <xsl:template match="Text[@Style='style1']">
        <xsl:copy use-attribute-sets="style1">
            <xsl:copy-of select="@*[name()!='Style']"/>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="Text[@Style='style2']">
        <xsl:copy use-attribute-sets="style2">
            <xsl:copy-of select="@*[name()!='Style']"/>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>
4

1 に答える 1

5

test.xmltest.xslを同じディレクトリに配置test.xmlし、ブラウザーにロードします。?xml-stylesheet最初のディレクティブにより、ブラウザーによって xsl がロードされ、実行されます。

そうは言っても、XSL を XML テスト ファイルに適用すると、次の出力が生成されます。

<Text Font="Arial" Bold="true" Color="Red"></Text>
<Text Font="Sans" Italic="true"></Text>

これは有効な HTML ではないため、ブラウザには何も表示されません。

出力を確認するには、次の XSL を使用してみてください。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output indent="yes"/>
  <xsl:output method="html"/>

  <xsl:template match="Text[@Style='style1']">
    <p style="font-family: Arial; font-weight: bold; color: red">
      <xsl:apply-templates/>
    </p>
  </xsl:template>

  <xsl:template match="Text[@Style='style2']">
    <p style="font-family: Sans-Serif; font-style: italic">
      <xsl:apply-templates/>
    </p>
  </xsl:template>

</xsl:stylesheet>

pstyle 属性を持つ HTML タグを生成します。XML テスト ファイルにスタイルを適用するテキストを追加する必要があることにも注意してください。

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="test2.xsl"?>
<root>
  <Text Style='style1'>Text in style 1</Text>
  <Text Style='style2'>Text in style 2</Text>
</root>
于 2013-08-18T17:56:04.140 に答える