Что такого сложного в использовании `<` вместо простого `<` для сравнения в XSLT? - PullRequest
4 голосов
/ 12 июня 2011

Хорошо, в XSLT я часто вижу:

<xsl:if test="a &gt; b">

так в чем же дело?

Я имею в виду, я изменил его на <xsl:if test="a > b"> и он работает нормально .. почему бы просто не использовать это?

Ответы [ 4 ]

3 голосов
/ 12 июня 2011

Ничего общего с XSLT, кроме того факта, что это XML, и XML запрещает < (но не >) в значениях атрибута:

$ cat > a.xml
<elm a=">"/>
$ xmllint a.xml
<?xml version="1.0"?>
<elm a="&gt;"/>
$ cat > b.xml
<elm b="<"/>
$ xmllint b.xml
b.xml:1: parser error : Unescaped '<' not allowed in attributes values
<elm b="<"/>
        ^
b.xml:1: parser error : attributes construct error
<elm b="<"/>
        ^
b.xml:1: parser error : Couldn't find end of Start Tag elm line 1
<elm b="<"/>
        ^
b.xml:1: parser error : Extra content at the end of the document
<elm b="<"/>
        ^
1 голос
/ 12 июня 2011

Я имею в виду, я изменил его на <xsl:if test="a < b"> и он работает нормально .. почему бы просто не использовать это?

Если это действительно так, ваш так называемый "XSLTпроцессор "не один .Любая таблица стилей XSLT должна быть правильно сформированным документом XML.Любой правильно сформированный XML-документ не может содержать символ "<" внутри значения атрибута.

Поэтому, пожалуйста, исправьте неверное утверждение в вашем вопросе.

0 голосов
/ 12 июня 2011

Поскольку <> являются разделителями тегов - поэтому нам нужно избегать этого как объекта & l t; или & # x 3 e; как последовательность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...