XSL Umlaute und Leerzeichen als Link falsch
miamiomc
- xsl
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
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
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
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
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
Hallo Gunnar,
in wie fern wäre es denn bei HTTP-Kontext anders?
Danke
Lothar
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