Как показать & в атрибуте XML, который будет создан XSLT - PullRequest
0 голосов
/ 26 октября 2011

Сначала я хочу указать свою цель.Мне поручено показать URL, связанный с константной строкой, особенно '& src = JB-10081' в качестве атрибута тега xml в выходных данных.

Вот мой код:

    <vacancy>
        <xsl:attribute name = "url">
          <xsl:value-of disable-output-escaping="yes" select="concat(apply_url, '&amp;src=JB-10081')"/>
        </xsl:attribute>
    <vacancy>

Этот код дает мне результат:

 <vacancy id="6747232000011108" datestart="" dateend="" language="" origin="" url="https://dtt.taleo.net/careersection/10540/jobapply.ftl?lang=en-GB&amp;job=27050&amp;src=JB-10081">

вы могли заметить, что URL и строковый литерал отображаются правильно, за исключением того, что вывод, показанный для строкового литерала, не был изменен на & и вместо этого показано как & , может ли кто-нибудь помочь мне показать его как &, а не &

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

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

http://w3.org/TR/1999/REC-xslt-19991116#disable-output-escaping:

" Ошибка отключения выхода для текстового узла, который используется для чего-то другого, кроме текстового узла в дереве результатов. Таким образом, это ошибка для отключения выхода для xsl: value-of или xsl: текстовый элемент, который используется для генерации строкового значения комментария, инструкции обработки или узла атрибута ; "

0 голосов
/ 26 октября 2011

Я заполнил свой ответ выше.В XML есть несколько зарезервированных символов, включая «&».XML использует его для создания ссылок на сущности.Таким образом,

<a b="&foo;"/>

указывает синтаксическому анализатору XML найти объект с именем 'foo'.Если вы не используете конструкцию &...;, вы получите ошибку.Попробуйте прочитать

<a b="&src"/>

в любом анализаторе XML, и это должно вызвать ошибку.Поэтому вывод, который вы хотите создать, является недопустимым XML.

Если вы хотите создать не-XML-строку, вам придется выводить ее в виде текста.

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