Gunnar Bittersmann: Umbrüche und Leerzeichen

Hello out there! Hallo Thomas! ;-)

Als Ausgabe einer XSLT-Transformation bekomme ich

<ol>  
  <li>foo</li>  
  <li>  
    <a href="bar">bar</a>  
  </li>  
  <li>  
    <a href="baz">baz</a>  
  </li>  
  <li>quz</li>  
</ol>

Ich möchte aber zwischen den </a>- und </li> kein Whitespace haben.

Setze ich <xsl:output xsl:indent="no"/>, bekomme ich alles in einer Zeile:

<ol><li>foo</li><li><a href="bar">bar</a></li><li><a href="baz">baz</a></li><li>quz</li></ol>

Was unschön zu lesen ist, falls man doch mal in den HTML-Quelltext schaut.

Gibt es eine Möglichkeit, die Ausgabe so zu bekommen:

<ol>  
  <li>foo</li>  
  <li><a href="bar">bar</a></li>  
  <li><a href="baz">baz</a></li>  
  <li>quz</li>  
</ol>

Zweite Frage: <xsl:text>&#xA0;</xsl:text> liefert in der Ausgabe ein normales Leerzeichen (U+0020). Warum? Wie bekomme ich das geschützte (U+00A0)?

See ya up the road,
Gunnar

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  1. Hallo,

    Ich möchte aber zwischen den </a>- und </li> kein Whitespace haben.
    Setze ich <xsl:output xsl:indent="no"/>, bekomme ich alles in einer Zeile:
    Was unschön zu lesen ist, falls man doch mal in den HTML-Quelltext schaut.
    Gibt es eine Möglichkeit, die Ausgabe so zu bekommen:

    <ol>

    <li>foo</li>
      <li><a href="bar">bar</a></li>

    Nein.

    Zweite Frage: [code lang=xml]xsl:text&#xA0;</xsl:text>

      
    Blöder Prozessor?  
      
      
    
    > Wie bekomme ich das geschützte (U+00A0)?  
      
    &#160;  
      
    Grüße  
    Thomas
    
    1. Hello out there!

      Gibt es eine Möglichkeit, die Ausgabe so zu bekommen:

      Nein.

      Klare Ansage. Danke. Schade eigentlich.

      Zweite Frage: <xsl:text>&#xA0;</xsl:text> liefert in der Ausgabe ein normales Leerzeichen (U+0020). Warum?

      Blöder Prozessor?

      Dann sind aber libxslt 1.1.15 und Sablotron 1.0.1 gleich blöd.

      Wie bekomme ich das geschützte (U+00A0)?

      &#160;

      Nö, gleicher Effekt (libxslt und Sablotron). Hätte mich auch gewundert, wenn ein XML-verarbeitendes Programm dezimale NCRs verstünde, hexadezimale aber nicht.

      Gibt’s dagegen irgendein Attribut, oder habe ich den Effekt gar durch irgendwas provoziert?

      <Stylesheet> <Ausgabe Sablotron> <Ausgabe libxslt>

      See ya up the road,
      Gunnar

      --
      “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
      1. Hallo,

        Zweite Frage: <xsl:text>&#xA0;</xsl:text> liefert in der Ausgabe ein normales Leerzeichen (U+0020). Warum?

        Blöder Prozessor?

        Dann sind aber libxslt 1.1.15 und Sablotron 1.0.1 gleich blöd.

        Das ist nicht gänzlich auszuschleißen. ;-)

        Wie bekomme ich das geschützte (U+00A0)?

        &#160;

        Nö, gleicher Effekt (libxslt und Sablotron). Hätte mich auch gewundert, wenn ein XML-verarbeitendes Programm dezimale NCRs verstünde, hexadezimale aber nicht.

        Gibt’s dagegen irgendein Attribut, oder habe ich den Effekt gar durch irgendwas provoziert?

        Außer, dass du es ohne xsl:text versucht oder ein wenig mit CDATA und disable-output-escaping spielst, fällt mir dazu nichts ein.

        Grüße
        Thomas

    2. Hello out there!

      Zweite Frage: <xsl:text>&#xA0;</xsl:text> liefert in der Ausgabe ein normales Leerzeichen (U+0020). Warum?

      Blöder Prozessor?

      Nein. Blödes Ich.

      Ich _dachte_, er würde &#xA0; in ' ' U+0020 umwandeln, dabei wandelt er das in ' ' U+00A0 um. Man sollte halt genau hinschauen, um die beiden unterscheiden zu können.

      Ich dachte das, weil der Firefox bei {text-align: justify alle Leerzeichen gleich breit gemacht hatte, ich es aber vom IE gewöhnt war, dass U+00A0 bei Blocksatz nicht breiter wird, sondern die Verbreiterung nur bei U+0020 auftritt.

      Also nie zuerst im Firefox testen, sondern immer erst im IE. ;-)

      See ya up the road,
      Gunnar

      --
      “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)