Avatar billede tmo Nybegynder
03. april 2002 - 10:17 Der er 15 kommentarer

newline

Jeg arbejder med et par templates som skal indsætte et <b/> og et mellemrum når min XML indeholder dette. Problemet er at jeg ikke kan finde "koden" for disse. Jeg har prøvet med &#xA for newline, men det duer ikke. Mellemrum finder jeg ved <xsl:variable name="sp"><xsl:text>  </xsl:text></xsl:variable>, men når jeg udskriver <xsl:text>&#160;</xsl:text> fortolkes dette ikke i min browser som et mellemrum. Jeg arbejder serverside på en linuxserver(ligger i sverige)om det har nogen betydning.??
Avatar billede kresten Nybegynder
03. april 2002 - 10:21 #1
Viser du resultatet af din transformation i HTML eller almindelig text?
Avatar billede tmo Nybegynder
03. april 2002 - 10:27 #2
Jeg viser det som html
Avatar billede kresten Nybegynder
03. april 2002 - 10:28 #3
Hvad er så problemet med at vise newline med <br/> og space med &nbsp;  ??
Avatar billede ehf Nybegynder
03. april 2002 - 10:29 #4
Jeg går ud fra at du vil danne HTML.

For at danne linie skift skal du i HTML bruge <BR/> og
for at danne et mellemrum skal du bruge &nbsp;
Avatar billede kresten Nybegynder
03. april 2002 - 10:30 #5
he he, den viser det jo ikke her.. men det skal være

& n b s p ;    (fjern spaces)
Avatar billede ehf Nybegynder
03. april 2002 - 10:30 #6
Til mellemrum &amp;nbsp;
Avatar billede tmo Nybegynder
03. april 2002 - 10:34 #7
probelemet er ikke så meget at vise fx. <br/>, men for at finde en newline fra min XML kan jeg ikke sige "find '\n' og erstat med <br/>" når output er HTML. fx. kan jeg finde et ord, som findes i xml´en og erstatte det med <br/>. Hvad er, er det ascii++, tegnet for '\n'. Her er mine templates

skulle finde newline:
<xsl:template name="br-replace">
    <xsl:param name="text"/>
    <xsl:variable name="cr" select="'&#xA;'"/>
    <xsl:choose>
        <xsl:when test="contains($text,$cr)">
          <xsl:value-of select="substring-before($text,$cr)"/>
        <br/>
        <xsl:call-template name="br-replace">
          <xsl:with-param name="text" select="substring-after($text,$cr)"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
      <xsl:value-of select="$text"/>
      </xsl:otherwise>
  </xsl:choose>
</xsl:template>

finder mellemrum, men udskriver ikke disse i HTML
<xsl:template name="sp-replace">
    <xsl:param name="text"/>
    <!-- NOTE: There are two spaces  ** here below -->
    <xsl:variable name="sp"><xsl:text>  </xsl:text></xsl:variable>
    <xsl:choose>
      <xsl:when test="contains($text,$sp)">
        <xsl:value-of select="substring-before($text,$sp)"/>
        <xsl:text>&#32;</xsl:text>
        <xsl:call-template name="sp-replace">
          <xsl:with-param name="text" select="substring-after($text,$sp)"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$text"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
Avatar billede tmo Nybegynder
03. april 2002 - 10:36 #8
newline: <xsl:variable name="cr" select="'& # x A ;'"/>
Avatar billede kresten Nybegynder
03. april 2002 - 10:36 #9
Prøv at tage et kik hos konkurrenten :)
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=0&id=1451&tech_id=3

Kan være det hjælper?
Avatar billede tmo Nybegynder
03. april 2002 - 10:45 #10
desværre ham bruger & # 10 ; som newline, men det findes ikke i min tekst. Findes der en editor som kan vise ascii tegn for en tekst. Jeg antager at & # 1 0; er ascii ??
Avatar billede tmo Nybegynder
03. april 2002 - 10:49 #11
Jeg mener heller ikke du kan skrive & n b s p ; i xsl da det ikke er wellformed. fx.
<xsl:template match="A">
    & n b s p ;<xsl:value-of select="B"/>     
</xsl:template>
Avatar billede kresten Nybegynder
03. april 2002 - 10:50 #12
10 = Linefeed i ASCII. Jeg bruger ultraedit til den slags, du kan sikkert downloade den et sted på nettet.
Avatar billede tmo Nybegynder
03. april 2002 - 10:52 #13
ok
Avatar billede kresten Nybegynder
03. april 2002 - 10:55 #14
Men du kan også bruge XMLSPY (http://www.xmlspy.com) efter min mening er et rigtig godt XML IDE.

Ja, du har ret i det ikke er well formed, tror jeg puttede det ind i noget <xsl:text> da jeg havde samme problem.
Avatar billede tmo Nybegynder
03. april 2002 - 10:57 #15
er nede :-(
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