XSLT - Remplacer l'apostrophe avec échappé texte en sortie
Je suis en train d'écrire un XSLT modèle de besoin à la sortie d'un fichier xml valide pour un Sitemap xml.
<url>
<loc>
<xsl:value-of select="umbraco.library:NiceUrl($node/@id)"/>
</loc>
<lastmod>
<xsl:value-of select="concat($node/@updateDate,'+00:00')"/>
</lastmod>
</url>
Malheureusement, l'Url qui est sortie contient une apostrophe - /ce qui est nouveau.aspx
J'ai besoin d'échapper à la " pour '
pour google Sitemap. Malheureusement, toutes les tentatives que j'ai essayé traite la chaîne " '
"comme si c'était "" qui n'est pas valide - frustrant. XSLT peut conduire me rend fou parfois.
Des idées pour une technique? (Suppose que je peux trouver mon chemin autour de XSLT 1.0 modèles et fonctions)
OriginalL'auteur Neil Fenwick | 2009-07-09
Vous devez vous connecter pour publier un commentaire.
Si vous avez
'
dans votre entrée, mais vous avez besoin de la chaîne
dans votre sortie?Dans votre fichier XSL, remplacer
'
avec&apos;
, à l'aide de cette fonction rechercher/remplacer de mise en œuvre (sauf si vous êtes en utilisant XSLT 2.0):L'appeler de cette façon:
Le problème est
'
est interprété par XSL comme'
.&apos;
sera interprété comme'
.select="&apos;"
me donner une erreur de syntaxe: Unexpected token '&' dans l'expression. -->&<--apos;J'obtiens l'erreur: Chaîne de caractères littérale n'a pas été fermé. -->'<--
OriginalL'auteur Welbog
La manière la plus simple de supprimer les caractères à partir de votre URL est de changer les règles umbraco utilise lorsqu'il génère le NiceUrl.
Modifier le fichier config/umbracoSettings.config
ajouter une règle à supprimer toutes les apostrophes de NiceUrls comme suit:
Remarque: Le contenu de la "org" attribut est remplacé par le contenu de l'élément, en voici un autre exemple:
vous pouvez republier ensemble du site " (cliquez-droit sur le nœud racine de l'arborescence) bien sûr, tout en signet url-être tort, mais les liens internes doivent être mis à jour. Vous POURRIEZ avoir à faire un "HARD republier" si cela ne fonctionne pas
OriginalL'auteur Myster
Avez-vous essayé de réglage disable-output-escaping oui pour votre xsl:value-of de l'élément:
En fait - et c'est probablement le contraire de ce que vous voulez.
Comment sur l'ajustement de la xsl:value-of dans une feuille de style xsl:élément de texte?
Peut-être vous devriez essayer de traduire
'
à&apos;
OriginalL'auteur Stephen Denne
Cela fonctionne, il vous suffit de modifier DEUX paramètres comme indiqué ci-dessous
OriginalL'auteur Gaurav Balyan