Использование двойных кавычек в xsl: param в XSLT - PullRequest
0 голосов
/ 18 февраля 2019

Я хотел бы использовать двойные кавычки в моем XSLT, но я получаю ошибку:

<xsl:param name="unsorted-values" as="xs:string*" 
    select=" 'Test 1','Test 1 with quote 21"' "/>

Очевидно, что это не работает, потому что двойные кавычки в строке.Я пытался сбежать, как 'Test 1 with quote 21\"', но это не сработало.Есть ли способ использовать двойные кавычки таким образом?

1 Ответ

0 голосов
/ 18 февраля 2019

Внутри атрибута XML, разделенного двойными кавычками, вы можете использовать ссылку на сущность &quot; (или соответствующую цифровую ссылку на символ).

Внутри строкового литерала XSLT / XPath 2 или 3, разделенного одинарными кавычками, вы можете использовать две одинарные кавычки, например, '''', чтобы внутри находилась одинарная кавычка.Или, если строковый литерал-разделитель представляет собой двойные кавычки, вы можете заключить их в двойные кавычки, например, """", чтобы получить строку с двойной кавычкой.

Полный пример с различными параметрами - вывод

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="#all"
    version="3.0">

  <xsl:param name="s1" as="xs:string*"
    select="'string with single quote: ''', 
             &quot;string with double quote: &quot;&quot;&quot;,
             'string delimited by single quotes with single quote: '' and double quote: &quot;',
             &quot;string delimited by double quotes with single quote: ' and double quote: &quot;&quot;&quot;"/>

  <xsl:template match="/*">
      <xsl:copy>
          <xsl:value-of select="$s1" separator="&#10;"/>
      </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

<root>string with single quote: '
string with double quote: "
string delimited by single quotes with single quote: ' and double quote: "
string delimited by double quotes with single quote: ' and double quote: "</root>

https://xsltfiddle.liberty -development.net / 6r5Gh2U

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