XSLT одинарные и двойные кавычки в атрибуте входного значения формы? - PullRequest
8 голосов
/ 03 января 2011

Надеюсь, быстрый вопрос, как я могу получить это, чтобы правильно сформировать, и, следовательно, запустить?

<input type="rad" name="RadGroup" value="<xsl:value-of select="productOptionInfo"/>" />

Я хочу разместить значение в значении атрибута, но им обоим нужны двойные кавычки!?

Есть идеи?

Большое спасибо

Ответы [ 4 ]

10 голосов
/ 03 января 2011

В XSLT есть ярлык для использования значений в атрибутах:

<input type="rad" name="RadGroup" value="{productOptionInfo}" />

Есть еще одна опция, которую можно использовать xsl:attribute:

<input type="rad" name="RadGroup">
    <xsl:attribute name="value">
       <xsl:value-of select="productOptionInfo"/>
    </xsl:attribute>
</input>
6 голосов
/ 03 января 2011

Это неправильно :

<input type="rad" name="RadGroup" 
       value="<xsl:value-of select='productOptionInfo'/>" /> 

и это тоже неправильно :

<input type="rad" name="RadGroup" 
       value='<xsl:value-of select="productOptionInfo"/>' />  

В XML этоявляется синтаксической ошибкой, имеющей (неэкранированную) разметку в качестве значения атрибута .См. W3 XML Spec - здесь и здесь .

Два правильных способа сделатьэто (называемые AVT или шаблоны значений атрибутов ):

<input type="rad" name="RadGroup" value="{productOptionInfo}"/> 

и

<xsl:attribute name="input">
  <xsl:value-of select="productOptionInfo"/>
</xsl:attribute>

В XSLT 2.0 разрешено писать :

<xsl:attribute name="input" select="productOptionInfo"/>

Первый способ выше - самый короткий и самый читаемый , когда имя элемента статически известно(заранее).

Второй способ должен использоваться, когда имя элемента статически не известно и должно генерироваться с помощью инструкции <xsl:element>.

3 голосов
/ 03 января 2011

Использовать фигурные скобки:

<input type="rad" name="RadGroup" value="{productOptionInfo}" />
0 голосов
/ 03 января 2011

Вы можете использовать одинарные кавычки внутри и двойные кавычки снаружи или наоборот.

Также в спецификации XML говорится:

Чтобы значения атрибутов могли содержать как одинарные, так и двойные кавычки, символ апострофа или одинарной кавычки (') может быть представлен как "&apos;", а символ двойной кавычки (") -" &quot;».

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