使用 dart-xml 构建和 xml 文档时是否可以添加更多信息?
以下两者都可以很好地构建 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 或多个参数,那么我如何启用processing()来做到这一点?是否需要更改列表以包含 2 个以上的参数,或者是否会更复杂并需要添加其他定义,例如 xslt 的“href”或 xsd 的其他定义?
最佳答案
我相信,dart-xml解析处理指令,如 standard 中所述。 。这意味着解析器只是将 <?
之间的所有内容分开。和?>
进入target
和一个 data
字符串。
因此,构建器也期望两个字符串作为参数。你可以简单地写:
builder.processing('xml', 'version="1.0" encoding="UTF-8"');
builder.processing('xml-stylesheet', 'type="application/xml" href="hieroglyph.xsl"');
向构建器添加一个方法来简化此类 XML 声明的创建可能是个好主意。请随意提出问题。
关于xml - XmlBuilder.processing 可以接受更多参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38951322/