Можно ли добавить дополнительную информацию при создании и xml-документе с помощью dart-xml?Может ли XmlBuilder.processing принимать больше аргументов?
Оба нижеследующие работы прекрасно подходят для построения xml, xslt.
builder.processing('xml', 'version="1.0"');
builder.processing('xml-stylesheet', 'type="application/xml"');
С помощью xml Я бы хотел добавить инструкции UTF, чтобы помочь интернационализации.
builder.processing('xml', 'version="1.0"', 'encoding="UTF-8"');
//gives error '2 positional arguments expected, but 3 found'
Попытка связаться с XSLT будет полезна.
builder.processing('xml-stylesheet', 'type="application/xml"', href="hieroglyph.xsl");
//gives 2 errors; '2 positional arguments expected, but 3 found'
//'Undefined name 'href''
Я считаю, что это устанавливается в пределах dart-xml/lib/xml/grammar.dart и способа обработки().
processing() => string(OPEN_PROCESSING)
.seq(ref(nameToken))
.seq(ref(space)
.seq(any().starLazy(string(CLOSE_PROCESSING)).flatten())
.pick(1)
.optional(''))
.seq(string(CLOSE_PROCESSING))
.map((each) => createProcessing(each[1], each[2]));
qualified() => ref(nameToken).map(createQualified);
Нормальные элементы Xml могут иметь 0,1 или много аргументов, и как бы разрешить обработку() для этого? Это вопрос изменения списка, включающего более 2 аргументов, или это было бы более сложным и влечет за собой добавление других определений, таких как «href» для xslt или других для xsd?
Hi Rengli, нет, он не работает. по какой-то причине существует предел для аргументов, которые может принимать builder.processing. Он возвращает ошибки, которые я набрал выше. Я буду продолжать пытаться. Я также открыл общую проблему в репозитории dart-xml, чтобы узнать, есть ли у кого-нибудь идеи или ввод, когда у них есть время. – lubi
Я добавил пример в качестве теста для [GitHub] (https://github.com/renggli/dart-xml/commit/dc2adbd3d28abac1b08acf33174c71ca2b7afe44). Обратите внимание, что обработка занимает два аргумента: первый аргумент - это цель, а второй аргумент - данные (это просто похоже на два атрибута в вашем примере). –
Думаю, я вижу, что вы сделали, чтобы сделать эту работу; просто удалите запятую и апострофию и превратите два аргумента в один. Это дает вам цель и строку данных. "'xml', 'version =" 1.0 "', 'encoding =" UTF-8 "' становится" 'xml', 'version = "1.0" encoding = "UTF-8"' "Это отлично работает для меня. , – lubi