Ich verwende XSL, um eine XML-Darstellung einer E-Mail-Nachricht in Browsern anzuzeigen. E-Mail-Anhänge werden in separaten Dateien in der Haupt-E-Mail-XML-Datei gespeichert. Daher möchte ich, dass die resultierende Webseite für die E-Mail einen Link zu ihren Anhängen enthält.So stoppen Sie XSL-Unescaping-URLs
Einige der Anhänge sind jedoch E-Mail-Nachrichten selbst und möglicherweise Weiterleitungen oder Antworten und daher möglicherweise Namen mit Doppelpunkten wie enthalten. FW: Wichtig. Der Name lautet URL-maskiert als FW% 3AImportant und wird als Datei gespeichert unter FW% 3AImportant.xml.
Das Problem ist, dass die URL in meiner XSL-produzierten Webseite unescaped ist und wieder den Doppelpunkt (file: // FW: Important.xml) enthält und somit ein defekter Link ist. Was ist der beste Weg, um dieses Verhalten zu stoppen? Hier
ist der XML-Schnipsel:
<email:part email:filename="FW%3AImportant">
<email:attachment filename="FW%3AImportant.xml">
FW%3AImportant.xml
</email:attachment>
</email:part>
Und hier ist der XSL-Schnipsel:
<xsl:template match="email:email/email:parts">
<xsl:for-each select="email:part/email:attachment">
<a>
<xsl:attribute name="href">
<xsl:value-of select="@filename" />
</xsl:attribute>
<xsl:value-of select="@filename" />
</a>
</xsl:for-each>
</xsl:template>
Das macht Sinn, ich werde es versuchen. Ich hatte mir das Stylesheet bereits angesehen, aber ich hatte auf eine einfachere Antwort gehofft! – jwaddell