Avatar billede sf Nybegynder
21. november 2007 - 01:38 Der er 2 kommentarer og
1 løsning

for each ENTITY

så er jeg kommet så langt med min kode og det virker. men nu vi jeg vide hvordan jeg for kørt alle mine entity igenmmen funktionen: "replace-string" ?

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

<!DOCTYPE stylesheet [
<!ENTITY oelig "&amp;oslash;" >
<!ENTITY aelig "&amp;aelig;" >
<!ENTITY aalig "&amp;aring;" >
<!ENTITY oolig "&amp;Ouml;" >
]>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:library="urn:Framecoders.Library" exclude-result-prefixes="library">

    <xsl:output method="xml" indent="yes" encoding="utf-8" omit-xml-declaration="yes" />

    <xsl:param name="currentPage" />

    <xsl:variable name="query" select="library:Request('query')" />

<!-- reusable replace-string function -->
<xsl:template name="replace-string">
    <xsl:param name="text"/>
    <xsl:param name="from"/>
    <xsl:param name="to"/>

    <xsl:choose>
      <xsl:when test="contains($text, $from)">

    <xsl:variable name="before" select="substring-before($text, $from)"/>
    <xsl:variable name="after" select="substring-after($text, $from)"/>
    <xsl:variable name="prefix" select="concat($before, $to)"/>

    <xsl:value-of select="$before"/>
    <xsl:value-of select="$to"/>
        <xsl:call-template name="replace-string">
      <xsl:with-param name="text" select="$after"/>
      <xsl:with-param name="from" select="$from"/>
      <xsl:with-param name="to" select="$to"/>
    </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$text"/> 
      </xsl:otherwise>
    </xsl:choose>           
</xsl:template>


    <xsl:template match="/">

        <form method="post" action="{library:FriendlyUrl($currentPage/@ID)}">
            <p>
                <label>
                    Søgeord:<br />
                    <input type="text" name="query" value="{$query}" />
                </label>
            </p>
            <p>
                <input type="submit" value="Søg" />
            </p>
        </form>

        <xsl:if test="$query != ''">

<xsl:variable name="newQuery1">
<xsl:call-template name="replace-string">
  <xsl:with-param name="text" select="$query" />
  <xsl:with-param name="from" select="'ø'" />
  <xsl:with-param name="to" select="'&oelig;'" />
</xsl:call-template>
</xsl:variable>

<xsl:variable name="newQuery2">
<xsl:call-template name="replace-string">
  <xsl:with-param name="text" select="$newQuery1" />
  <xsl:with-param name="from" select="'å'" />
  <xsl:with-param name="to" select="'&aalig;'" />
</xsl:call-template>
</xsl:variable>

<xsl:variable name="newQuery3">
<xsl:call-template name="replace-string">
  <xsl:with-param name="text" select="$newQuery2" />
  <xsl:with-param name="from" select="'æ'" />
  <xsl:with-param name="to" select="'&aelig;'" />
</xsl:call-template>
</xsl:variable>

            <xsl:variable name="result" select="$currentPage/ancestor::root/descendant::node[contains(library:Lowercase(data[@key='pageContent']), library:Lowercase($newQuery3))]"/>
            <h2>Søgeresultater</h2>
            <p>
                Der blev fundet <strong>
                    <xsl:value-of select="count($result)"/>
                </strong> resultater.
            </p>
            <ul>
                <xsl:for-each select="$result">
                    <li>
                        <a href="{library:FriendlyUrl(@ID)}">
                            <xsl:value-of select="@name"/>
                        </a><br/>
                        Senest opdateret <xsl:value-of select="concat(library:FormatDate(@lastModified, 'd. MMMM yyyy'),' kl. ',library:FormatDate(@lastModified, 't'))" />
                    </li>
                </xsl:for-each>
            </ul>
        </xsl:if>
    </xsl:template>

</xsl:stylesheet>
Avatar billede jokkejensen Novice
30. november 2007 - 12:53 #1
<!DOCTYPE stylesheet [
    <!ENTITY oelig "&#248;" >
]>


<xsl:variable name="nonEncoded">ø</xsl:variable>
<xsl:variable name="Encoded" select="translate($nonEncoded,'ø', '&#248;')"></xsl:variable>           
<xsl:value-of select="$Encoded"/>

Udskriver ø.

Husk du skal bruge de korrekte entities !!!

æ = &#230;
ø = &#248;
å = &#229;

og der skal også være for de store bogstaver !!!
Avatar billede sf Nybegynder
12. maj 2010 - 14:14 #2
lav svar!
Avatar billede jokkejensen Novice
12. maj 2010 - 17:00 #3
ok, men var det noget værd det jeg skrev ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester