miamiomc: XSL Umlaute und Leerzeichen als Link falsch

Hallo zusammen,

ich möchte auf Dateien verlinken. Leider beinhalten die Datinamen Umlaute und Leerzeichen. Kann ich leider nichts dran ändern, ist halt so. Der Dateiname wird mit auch korrekt angezeigt, leider aber der Link nicht. Im Link steht dann für das Leerzeichen %20. Da sich damit aber keine Adresse korrekt ansprechen lässt, funktioniert das ganze nicht.

Mein Code (Auszug) sieht wie folgt aus:

xsl-Datei

<?xml version="1.0" encoding="UTF-8"?>
...
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
...
<xsl:variable name="sp_det_link"><xsl:value-of select="SP_Detail"/></xsl:variable>
<a href="{$sp_det_link}" target="detail"><xsl:value-of select="SP_Detail"/></a>

In der xml ebenfalls

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

Welchen Fehler mache ich bzw. weiss jemand rat?

Danke

Lothar

  1. Hello out there!

    Im Link steht dann für das Leerzeichen %20.

    Völlig korrekt, ' ' darf in einem URI nicht stehen.

    Da sich damit aber keine Adresse korrekt ansprechen lässt,

    ?? Wo ist das Problem?

    funktioniert das ganze nicht.

    Was heißt funktioniert nicht?

    Kannst du mal den problematischen generierten HTML-Code zeigen?

    See ya up the road,
    Gunnar

    --
    „Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)
    1. Hello out there!

      Im Link steht dann für das Leerzeichen %20.

      Völlig korrekt, ' ' darf in einem URI nicht stehen.

      Ob dort Umlaute stehen dürfen oder nicht, Sie stehen nunmal dort. Ich müsste demnach %20 irgendwie wieder in ein Leerzeichen umwandeln, bzw, die Umlaute. Angezeigt wird es ja richtig.

      Da sich damit aber keine Adresse korrekt ansprechen lässt,

      ?? Wo ist das Problem?

      funktioniert das ganze nicht.

      Was heißt funktioniert nicht?

      file://070611_%25C3%2584nderung%20zu%20Lieferung.zip wird halt numal nicht gefunden.

      Kannst du mal den problematischen generierten HTML-Code zeigen?

      Gerne, meinst Du diesen:

      <HTML xmlns:signature="urn:schemas-microsoft-com:office:access">
      <HEAD>
      <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8"/>

      </HEAD>
      <BODY ONLOAD="ApplyTransform()">

      </BODY>

      <SCRIPT LANGUAGE="VBScript">
       Option Explicit

      Function ApplyTransform()

      Dim objData, objStyle

      Set objData = CreateDOM
        LoadDOM objData, "all.xml"

      Set objStyle = CreateDOM
        LoadDOM objStyle, "intern.xsl"

      Document.Open "text/html","replace"
        Document.Write objData.TransformNode(objStyle)
       End Function

      Function CreateDOM()
        On Error Resume Next
        Dim tmpDOM

      Set tmpDOM = Nothing
        Set tmpDOM = CreateObject("MSXML2.DOMDocument.5.0")
        If tmpDOM Is Nothing Then
         Set tmpDOM = CreateObject("MSXML2.DOMDocument.4.0")
        End If
        If tmpDOM Is Nothing Then
         Set tmpDOM = CreateObject("MSXML.DOMDocument")
        End If

      Set CreateDOM = tmpDOM
       End Function

      Function LoadDOM(objDOM, strXMLFile)
        objDOM.Async = False
        objDOM.Load strXMLFile
        If (objDOM.ParseError.ErrorCode <> 0) Then
         MsgBox objDOM.ParseError.Reason
        End If
       End Function

      </SCRIPT>
      </HTML>

      oder das Ergebnis?

      <html>
      <head>
      <META http-equiv="Content-Type" content="text/html">
      <title>XXXXX</title>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <link rel="stylesheet" type="text/css" media="screen" href="../../common/css/screen.css">
      <link rel="stylesheet" type="text/css" media="print" href="../../common/css/print.css"><script src="../../common/js/common.js" type="text/javascript"></script></head>
      <body>

      <div id="spl" class="tabcontent">
      <h3>Servicepakete</h3>
      <table class="data zebra">
      <tr>
      <th class="col0">Liefertermin</th>
      <th class="col1">Beschreibung</th>
      <th class="col0">Link</th>
      <th class="col0">Status</th>
      <th class="col0">Info</th>
      <th class="col0">Prog-Daten</th>
      <th class="col0">vom</th>
      <th class="col0">Cod-Daten</th>
      <th class="col0">vom</th>
      <th class="col0">KMM-Daten</th>
      <th class="col0">vom</th>
      </tr><table class="data zebra">
      <tr>
      <th class="col0">E83</th>
      <th class="col1"></th>
      </tr>
      <tr>
      <td>11.06.2007</td>
      <td><a href="\070611_%C3%84nderung zu Lieferung_070516.zip" target="detail">\070611_Änderung zu Lieferung_070516.zip</a></td>
      <td><a href="\SP_E83_26_1_070611_01.zip" target="paket">\SP_E83_26_1_070611_01.zip</a></td>
      <td></td>
      <td></td>
      ...
      </div>
      </body>
      </html>

      Du darfst auch mit Kritik nicht sparsam sien, ich kann VBScript auch nicht leiden. Wenn Du eine Umsetzung in JS kennst immer her damit.

      Danke

      Lothar

      1. Hallo Gunnar,

        ich sehe gerade, dass ich in meinem gestrigen Eintrag Anrede usw. vergessen habe.

        Möchte mich dafür entschuldigen, hatte gerade viel um die Ohren.

        Ich hoffe auf Verständnis.

        Lothar

        1. Hello out there!

          ich sehe gerade, dass ich in meinem gestrigen Eintrag Anrede usw. vergessen habe.

          Kein Problem.

          Was du allerdings vergessen hattest, war im OP zu erwähnen, dass es sich nicht um HTTP-Kontext handelt. Könnte bedeutsam sein.

          See ya up the road,
          Gunnar

          --
          „Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)
          1. Hallo Gunnar,

            in wie fern wäre es denn bei HTTP-Kontext anders?

            Danke

            Lothar

      2. Hello out there!

        file://070611_%25C3%2584nderung%20zu%20Lieferung.zip wird halt numal nicht gefunden.

        Fehlt da nicht ein '/'? 'file:///...'

        Sicher, dass es die Leerzeichen ('%20') sind?

        '%25C3%2584' sind nicht gar gut aus. Das hieße prozent-decodiert ('%25' → '%', '%20' → ' ') "070611_%C3%84nderung zu Lieferung.zip", und eine Datei solchen Namens gibt es wohl wirklich nicht.

        Das 'Ä' prozent-codiert ist '%C3%84' (UTF-8) bzw. '%C4' (ISO 8859-1). Probier mal, ob 'file:///070611_%C3%84nderung%20zu%20Lieferung.zip' oder 'file:///070611_%C3%84nderung%20zu%20Lieferung.zip' funktioniert.

        See ya up the road,
        Gunnar

        --
        „Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)