Нужно проверить строку, содержит ли она html или xml, используя xslt - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть xsl:variable, содержимое которого может быть HTML, XML или двоичным.

Я отображаю значение переменной в textarea на html-странице.

Если переменная содержит данные HTML или XML, она отображается в формате textarea.

<xsl:variable name="outputString">
//html or xml or binary data goes in here
</xsl:variable>
<xsl:template match="/">
<html>
<body>
<textarea name="output" cols="20" rows="20">
<xsl:value-of select="$outputString" />
</textarea>
</body>
</html>
</xsl:template>

в неотформатированном виде. Все, что мне нужно, - это отображать содержимое переменной в формате в формате textarea, еслисодержимое - это HTML или XML.

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Для этой работы вам понадобятся расширения процессора, поэтому ответ зависит от того, какой процессор XSLT вы используете.

0 голосов
/ 22 апреля 2011

Ну, мне нужно попробовать, но я думаю, что вы могли бы сделать следующее

<xsl:if test="fn:contains($outputString, '<(.*)>.*<\1>')>
</xsl:if>

или в вашем случае я бы предпочел использовать тег выбора.

fn: contains () предназначено для XSLT 2.0, и часть, в которой я не уверен, что погода примет регулярное выражение в этом формате. даже больше, потому что некоторые места используют $ 1 вместо \ 1 для ссылки на значение группы.

Если вы ссылаетесь на XML или HTML, который его обнаружит.

...