Создание списка и использование изображения в XSL -> XHTML - PullRequest
0 голосов
/ 18 октября 2018

У меня есть два словаря, которые будут объединены в один вывод с помощью 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...