Я прошёл учебное пособие по W3cschools XSLT и нахожусь на этой странице: xsl-if .
На этой странице (красным цветом). ) это текст
. Это работает. Я изменил код для использования " & lt; "
, и это тоже отлично работает.
Я тестировал
(обратите внимание на использование >
вместо & gt;
). Это тоже работает.
Но это не получается:
. Ошибка: Ошибка синтаксического анализа XML: неправильно сформирована
, и она указывает на символ в выражении.
Если символ >
работал нормально, почему Не удалось ли использовать ? (Я использую FireFox)
Если символ> работал нормально, почему используя
Потому что символ «<» - один из немногих, которые недопустимы в значении атрибута (это символ начала тега).
[10] AttValue ::= '"' ([^<&"] | Reference)* '"'
Как ясно видно, символы «<» и «&» не допускаются ни в каком значении атрибута.
Обновление : Как заметил @Tomalak, выше должно читаться:
Как можно ясно видеть, символы «<» и «&» (если последний не является частью ссылки на сущность или ссылки на символ ) не допускаются ни в одном значении атрибута.
Вы также можете посмотреть ответ на этот вопрос на w3schools:
http://www.w3schools.com/xmL/xml_syntax.asp
Ссылки на сущности
Некоторые символы имеют особое значение в XML.
Если вы поместите такой символ, как "<" внутри элемента XML, это приведет к возникнет ошибка потому что синтаксический анализатор интерпретирует его как начало нового элемента.
Незакодированная «открывающая» скобка <
обычно недопустима в значениях атрибутов XML согласно спецификации XML .
Хотя «закрывающая» скобка >
разрешена, использование ее на самом деле является плохим стилем (ИМХО). Значения атрибутов XML должны быть закодированы в XML, точка.