Как перемешивать цепи мультилиния, которую содержали бы квадратные скобки?

Я изучаю Lua и, который возможный создавать цепь мультилиния используя [[ и ]]а именно, возможно делать это:

html = [[
  
    
    
    
    
  
]]
print(html)

Результат был бы:


  
  
  
  

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

xml = [[
  
      Hello, world!
    
  ]]>
]]
print(xml)

Но выполнив это, меня производит следующая ошибка:

lua: test.lua:7: unexpected symbol near ']'

Как кажется, запутывает квадратные скобки линии такой 6 как конец моей цепи. Как я могу способствовать тому, чтобы оно функционировало?

4
задан 16.03.2016, 22:31
1 ответ

Согласно документации по Strings в Lua, в секции Multiline quotes, подразделе Nesting quotes, он объясняет себе, что, когда ты нуждаешься в том, чтобы иметь квадратные скобки внутри цепи мультилиния, ты должен добавлять один = между квадратными скобками начала и концом твоей цепи из-за каждой пары квадратных скобок [] что будут находиться внутри твоей цепи. Ввиду того, что CDATA используй 2 пары квадратных скобок (как он появляется)

<![CDATA[
  ^     ^
... contenido ...
]]>
^^

Ты будешь должен использовать два символа =. Это, ты будешь должен использовать [==[ и ]==] чтобы определять твою цепь текста, который содержит квадратные скобки. Твой код был бы таким образом:

xml = [==[
  <![CDATA[
    <greeting>
      Hello, world!
    </greeting>
  ]]>
]==]
print(xml)

Здесь пример твоего рукописного шрифта прокручивая изображение в окне в ideone: http://ideone.com/y6YdfK

2
ответ дан 24.11.2019, 14:43