1

xpath検証以外に初めてXMLを使用しようとしました。XML と XSL ドキュメントをリンクして、firefox v25 以降のブラウザーで開いたときに XML が次のように表示されるようにする宿題があります。

山の名前: エベレスト
ピッグ ラテン名: ountMa verestEa 山
の名前: ラニエ
山 山の名前: セント ヘレンズ山 山名:
ワシントン山 ピッグ ラテン名: ountMa ashingtonWa 豚のラテン名: ountMa esuviusVa 山の名前: エトナ山 豚のラテン名: ountMa tnaEa







ファイル Asg04XST.xml の XML コードは次のとおりです。これをデスクトップの Asg04 というフォルダーに保存しました。

<FamousMountains>
<mountain>
    <name language="English">Mount Everest</name>
    <name language="PigLatin">ountMa verestEa</name>
    <location>Nepal</location>
    <height units="feet">29035</height>
</mountain>
<mountain>
    <name language="English">Mount Ranier</name>
    <location>Washington</location>
    <height units="feet">14411</height>
</mountain>
<mountain>
    <name language="English">Mount St. Helens</name>
    <location>Washington</location>
    <height units="feet">8364</height>
</mountain>
<mountain>
    <name language="English">Mount Washington</name>
    <name language="PigLatin">ountMa ashingtonWa</name>
    <location>New Hampshire</location>
    <height units="feet">6288</height>
</mountain>
<mountain>
    <name language="English">Mount Bonnell</name>
    <name language="PigLatin">ountMa onnellBa</name>
    <location>Austin</location>
    <height units="feet">800</height>
</mountain>
<mountain>
    <name language="English">Mount Vesuvius</name>
    <name language="PigLatin">ountMa esuviusVa</name>
    <location>Italy</location>
    <height units="feet">4203</height>
</mountain>
<mountain>
    <name language="English">Mount Etna</name>
    <name language="PigLatin">ountMa tnaEa</name>
    <location>Sicily</location>
    <height units="feet">10922</height>
</mountain>
</FamousMountains>

次に、この XSL ファイルを Asg04.xsl という名前の同じフォルダーに作成しました。

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:output method="text" />

<xsl:template match="FamousMountains">

<html>
<head><title><h3>Julie Laursen</h3></title></head>
<body>

<xsl:for-each select="mountain">
Mountain Name: <xsl:value-of select="name"/>
</xsl:for-each>

</body>
</html>
</xsl:template>
</xsl:stylesheet>

それらを同じフォルダーに保存したので、match="/" で問題ないと思います。次に、for-each の選択ごとに山を選択し、value-of select の下で、要素である名前を選択します。山の下。しかし、XML ドキュメントを開いても、これがどこにも反映されていません。最初に山の名前を機能させたいので、豚のラテン語セクションには行きませんでした。これら 2 つのファイルを相互に表示するにはどうすればよいですか?

私が試したこと: ?xml-stylesheet type="text/xsl" href="Asg04.xml"? などの href 行を追加します。Asg04XST.xsl と同様

4

1 に答える 1

1

目的の出力を得るために更新された xml & およびスタイル シートを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="mystylesheet.xsl"?>
<FamousMountains>
    <mountain>
        <name language="English">Mount Everest</name>
        <name language="PigLatin">ountMa verestEa</name>
        <location>Nepal</location>
        <height units="feet">29035</height>
    </mountain>
    <mountain>
        <name language="English">Mount Ranier</name>
        <location>Washington</location>
        <height units="feet">14411</height>
    </mountain>
    <mountain>
        <name language="English">Mount St. Helens</name>
        <location>Washington</location>
        <height units="feet">8364</height>
    </mountain>
    <mountain>
        <name language="English">Mount Washington</name>
        <name language="PigLatin">ountMa ashingtonWa</name>
        <location>New Hampshire</location>
        <height units="feet">6288</height>
    </mountain>
    <mountain>
        <name language="English">Mount Bonnell</name>
        <name language="PigLatin">ountMa onnellBa</name>
        <location>Austin</location>
        <height units="feet">800</height>
    </mountain>
    <mountain>
        <name language="English">Mount Vesuvius</name>
        <name language="PigLatin">ountMa esuviusVa</name>
        <location>Italy</location>
        <height units="feet">4203</height>
    </mountain>
    <mountain>
        <name language="English">Mount Etna</name>
        <name language="PigLatin">ountMa tnaEa</name>
        <location>Sicily</location>
        <height units="feet">10922</height>
    </mountain>
</FamousMountains>

mystylesheet.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="html" />

    <xsl:template match="/">
        <html>
            <head><title>Julie Laursen</title></head>
            <body>                
            <h3>Julie Laursen</h3>
            <xsl:apply-templates />
            </body>
        </html>
    </xsl:template>

    <xsl:template match="mountain">
        <xsl:for-each select="name">
            <xsl:if test="@language='English'">
                Mountain Name: <xsl:value-of select="."/><br/>
            </xsl:if>   
            <xsl:if test="@language='PigLatin'">
                Pig Latin Name: <xsl:value-of select="."/><br/>
            </xsl:if>
        </xsl:for-each>

    </xsl:template>
</xsl:stylesheet>

出力

ここに画像の説明を入力

于 2016-10-17T02:18:13.567 に答える