Регулярное выражение в XSLT - PullRequest
0 голосов
/ 02 октября 2009

У меня есть функция XSLT, которая принимает регулярное выражение в качестве параметра, но синтаксическому анализатору XSLT это не нравится.

Вот код:

<xsl:value-of select='ns:RegexReplace($variable, "", "style=\"\w+\:\s\w+;\"")' disable-output-escaping='yes' />

Я нашел это: http://www.xml.com/pub/a/2003/06/04/tr.html <- но он использует то, что я есть, и, кажется, работает (для них). У меня просто есть анализатор мусора ?? </p>

Есть ли способ сделать это? Или способ заставить элемент игнорировать встроенный стиль с помощью трюка CSS?

Ответы [ 2 ]

2 голосов
/ 03 октября 2009

Вы, кажется, пытаетесь включить кавычки в строковый литерал XPath, разделенный кавычками, экранируя их обратной косой чертой. Это не работает.

В XPath 1.0 (XSLT 1) нет хорошего способа сделать это. Возможно, вам придется прибегнуть к трюкам, таким как определение переменной, содержащей символ одинарной кавычки, и использование функции concat для создания вашей строки:

<xsl:variable name='quot' select="'&quot;'"/>
<xsl:value-of select='concat("a string with a quote ", $quot, " character")'/>

В XPath 2.0 (XSLT 2) вы можете избежать цитаты с другой цитатой:

<xsl:value-of select='"a string with a quote "" character"'/>
0 голосов
/ 03 октября 2009

Мне приходит в голову, что вы можете пытаться удалить атрибуты style. Если это так, то замена строки не поможет вам.

Вы можете удалить атрибуты стиля, например, написав шаблон, который соответствует им и ничего не выводит:

<xsl:template match="@style"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...