Я новичок в lua и хочу изменить тег XML и имя attribute. Мой XML:

<art>
    <fm>
    <art-meta>
            <his>
            <date date-type="rec"><day>23</day><month>1</month><year>2002</year></date>
            <date date-type="acc"><day>21</day><month>4</month><year>2002</year></date>
            </his>
    </art-meta>
    </fm>
</art>

Я пробовал FileGlobal = string.gsub(FileGlobal,"<date data-type=\"rec\">", "<date-rec>") и не работает?

Я хочу изменить <date date-type="rec"> на <date-rec>. Как этого добиться?

lua
1
user49758 26 Июн 2020 в 08:50

1 ответ

Лучший ответ

В шаблоне (второй параметр gsub) есть опечатка, которая ищет date data-type вместо того, что мы видим в xml, date date-type.
Помимо этого, в шаблоне есть реальная проблема, о которой следует знать: В шаблонах Lua используются специальные символы, например - $ ^ () [ %. Вы должны экранировать - в date-type вот так: date%-type.
В меньшей степени стоит также отметить, что вам не нужно избегать двойных кавычек (хотя это сработает). Вы можете заключить строки в одинарные кавычки или двойные скобки, и двойные кавычки внутри будут распознаваться как часть строки.
Пример: 'Foo "egg" bar' или [[Foo "egg" bar]]
Заключительный пример рабочего шаблона: исправлена ​​опечатка, дефис экранирован. '<date date%-type="rec">'

1
Allister 26 Июн 2020 в 18:37