XmlBuilder.processing是否可以接受更多参数?

XmlBuilder.processing是否可以接受更多参数?,xml,xslt,xsd,dart,Xml,Xslt,Xsd,Dart,在使用构建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 e

在使用构建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''
我认为这是在和processing()方法中设置的

普通Xml元素可以有0、1或多个参数,那么如何启用processing()来实现这一点呢?更改列表以包含2个以上的参数是一个问题,还是更复杂并需要添加其他定义,如xslt的“href”或xsd的其他定义?

我相信,解析处理指令如中所述。这意味着解析器只需将
之间的所有内容拆分为
目标
数据
字符串

因此,构建器也需要两个字符串作为参数。你可以简单地写:

builder.processing('xml','version=“1.0”encoding=“UTF-8”);
builder.processing('xml-stylesheet','type=“application/xml”href=“hieraglyph.xsl”);

向构建器中添加一个方法以简化此类XML声明的创建可能是一个好主意。请随意提交问题。

你好,仁利,不,它不起作用。由于某些原因,builder.processing可以接受的参数有一个限制。它返回我上面键入的错误。我会继续努力的。我还打开了一个关于dart xml repo的一般性问题,看看有没有人在有时间的时候有什么想法或意见。请注意,处理需要两个参数:第一个参数是目标,第二个参数是数据(在您的示例中,这恰好看起来像两个属性);只要去掉逗号和撇号,把两个参数变成一个。这将为您留下一个目标和一个数据字符串。“'xml'、'version=“1.0”、'encoding=“UTF-8”变为“'xml'、'version=“1.0”encoding=“UTF-8””,这对我来说很好。
 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);