XSLT - преобразование обратной косой черты URI в прямую косую черту

Мы конвертируем устаревшие HTML-файлы в DITA. Я хотел бы преобразовать пути Windows с обратной косой чертой в атрибуте href

<a href="c:\developer\file.html">

косая черта

<xref href="c:/developer/file.dita">

Я безуспешно пытался использовать как замену, так и перевод (XSLT - v2). Я также пробовал метод string.replace на http://geekswithblogs.net/Erik/archive/2008/04/01/120915.aspx с тем же результатом.


person ham on wry    schedule 10.07.2014    source источник
comment
Как выглядели ваши звонки на translate? Это должно сработать, но вам, возможно, придется подумать о побеге.   -  person Marcus Rickert    schedule 10.07.2014
comment
Я пробовал миллиард разных способов. Вот два безуспешных: select = translate ('\', node (), '/') и translate (., '\', '/'). Проблема усугубляется тем, что мы используем стандартный XSL из DITA. -OT называется h2d.xsl. Сложно понять, куда пишет оригинальные ссылки.   -  person ham on wry    schedule 10.07.2014


Ответы (1)


Я безуспешно пытался использовать как замену, так и перевод (XSLT - v2).

translate(@href, '\', '/')

должно работать нормально. Или, если вы предпочитаете делать все одновременно, попробуйте:

<xsl:template match="a">
    <xref href="{replace(replace(@href, '\\', '/'), '.html', '.dita') }">
        <xsl:apply-templates/>
    </xref>
</xsl:template>
person michael.hor257k    schedule 10.07.2014