У меня есть два словаря, которые будут объединены в один вывод с помощью XSLT.
Но слова не будут отображаться в виде списка, но все в одну строку, и два «списка» не будут совпадатьвот так:
шведский английский слово1 слово2 слово2 слово2 слово3 слово .. слово ..
Кроме того, мой логотип, для которого я создал xpath, не будет отображаться.
Мой CSS-файл неверен, мой link.xml неверен или мои ожидания о выводе неверны?
словарь английского языка (english.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE thesaurus SYSTEM "dictionary.dtd"> -->
<?xml-stylesheet type="text/xsl" href="dictionary.xsl"?>
<!--Rootelementet kan enbart finnas 1 gang -->
<dictionary>
<language>Engelsk</language>
<author>
<firstname>A</firstname>
<lastname>B</lastname>
</author>
<word type="1">House</word>
<word type="2">Car</word>
<word type="3">Fisch</word>
<word type="4">Cat</word>
<word type="5">Dog</word>
<word type="6">Street</word>
<word type="7">Water</word>
<word type="8">Stone</word>
<word type="9">Train</word>
<word type="10">Color</word>
</dictionary>
шведский словарь (swedish.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE thesaurus SYSTEM "dictionary.dtd"> --> <!--bortkommenterad så att man ska kunna validera jämte emot xsd schema-->
<?xml-stylesheet type="text/xsl" href="dictionary.xsl"?> <!-- Hamtar xsl styleesheet-->
<dictionary>
<language>Svensk</language>
<author>
<firstname>A</firstname>
<lastname>B</lastname>
</author>
<word type="1">Hus</word>
<word type="2">Bil</word>
<word type="3">Fisk</word>
<word type="4">Katt</word>
<word type="5">Hund</word>
<word type="6">Gata</word>
<word type="7">Vatten</word>
<word type="8">Sten</word>
<word type="9">Tåg</word>
<word type="10">Färg</word>
</dictionary>
XML для связывания словарей (links.xml)
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="dictionary.xslt"?>
<links>
<dict>english.xml</dict>
<dict>svenska.xml</dict>
<svgLogo name="logo">boksvg.svg</svgLogo>
</links>
The XSL file (dictionary.xslt)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/xhtml1/strict">
<xsl:output
method="xml"
indent="yes"
encoding="UTF-8"
/>
<xsl:variable name="dict1">
<xsl:value-of select="/links/dict[1]" />
</xsl:variable>
<xsl:variable name="dict2">
<xsl:value-of select="/links/dict[2]" />
</xsl:variable>
<xsl:variable name="logo" select="document(/links/svgLogo[@type='logo'])" />
<xsl:template match="/links">
<html xmlns="http://www.w3.org/1999/xhtml">
<link rel="stylesheet" type="text/css" href="style.css"/>
<body>
<div id="content">
<div id="logoo"> <img width="100" height="100" src="{//svgLog/node()}"/> </div>
<div id ="title"> <xsl:apply-templates select="document($dict1)/dictionary/language"/> ordlista</div>
<div id="author">
Författare: <xsl:apply-templates select="document($dict1)//author"/> </div>
<p class="words"><xsl:apply-templates select="document($dict1)//word">
<xsl:apply-templates select="document($dict2)//word">
<xsl:sort order="ascending"/>
</xsl:apply-templates></p>
</div>
</body>
</html>
</xsl:template>
<xsl:template match="word">
<xsl:value-of select="."/>
<br/>
</xsl:template>
</xsl:stylesheet>
CSS (style.css)
body
{
background-color: #ffffff;
color: #000000;
}
/* Författaren är med small caps, storlek 16, centrerad och ett radbryte på 2,5 till nästa rad (orden).*/
#author{
text-align: center;
font-variant: small-caps;
font-size: 16pt;
padding-bottom: 2.5cm;
display: block;
}
/* Ordlistans språk står centrerad med small caps och storlek 24. Ett radbryte på 1,5 läggs till nästa rasd (författare)*/
#title{
text-align: center;
font-variant: small-caps;
font-size: 24pt;
padding-bottom: 1.5cm;
display: block;
}
/* Orden ska vara till vänster med storlek 12 och visas som en punktlista. */
.words{
font-family: "Georgia", serif;
font-size: 12pt;
text-align: left;
display: list-item;
list-style: square;
padding-left:20px;
margin-left:20px;
}
Где мне внести изменения, в CSS, XSL, словарях или в ссылках xml?