Проблемы со связыванием документов XML и XSL
Впервые пытаюсь использовать XML помимо валидации xpath. У меня есть домашнее задание, в котором я должен связать XML и документ XSL, чтобы при открытии в браузере Firefox v25 или более поздней версии XML отображался так:
Название горы: гора Эверест
Свинья латинское имя: ountMa verestEa
Название горы: гора Раньер
Название горы: гора Св. Елены
Название горы: гора Вашингтон
Свинья латинское имя: ountMa ashingtonWa
Название горы: гора Боннелл
Свинья латинское имя: ountMa onnellBa
Название горы: Везувий
Свинья латинское имя: ountMa esuviusVa
Название горы: Этна
Свинья латинское имя: ountMa tnaEa
Мой XML-код выглядит следующим образом для файла Asg04XST.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="/" было бы хорошо, а затем рискнул бы, что для каждого выбора для каждого я выбираю гору и затем в значении выбора, имя, которое является элементом под горой. Однако, когда я открываю свой XML-документ, я не вижу этого нигде. Я не добрался до латинской секции свиней, потому что сначала я хочу, чтобы имя горы работало. Как мне получить эти два файла, чтобы увидеть друг друга?
Вещи, которые я пробовал: добавить строку href, например? Xml-stylesheet type="text/xsl" href="Asg04.xml"? а также Asg04XST.xsl
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>
Выход