xml - 在 Flutter 中显示来自 XML 的动态 ListView

标签 xml flutter

我有这样的 XML:

<root>
   <customers>
      <customer customerId='A001'>
         <name>Alex</name>
         <address>...</address>
         <photo>http://myserver/images/alex.png</photo>
      <customer>
      <customer customerId='B001'>
         <name>Bruce</name>
         <address>...</address>
         <photo>http://myserver/images/bruce.png</photo>
      <customer>
      ...
   </customers>
</root>

它是使用 http client.send 发送的,就像这个例程:

await client.send(request).then((response)
    => response.stream.bytesToString()
    .then((value) {
      var xmlDoc = xml.parse(value);
      var _xmlList = xmlDoc.findAllElements("list").toList();
      ...
    })
  ).catchError((error) => print(error.toString()));

如何将 XML 转换为列表数组并显示 ListView ?

感谢您的帮助。

最佳答案

使用 xml 包。从这样的导入开始:

import 'package:xml/xml.dart' as xml;

将响应解码为字符串,然后对其进行解析并将其映射到您想要的任何类型的小部件中。我刚刚举了一个最简单的 Text 示例。您可以使用卡片、详细信息、图像等创建自己的复合小部件。

  xml.XmlDocument document = xml.parse(response);
  List<Text> names = document
      .findAllElements('customer')
      .map<Text>((e) => Text(e.findElements('name').first.text))
      .toList();

ListView 中使用生成的小部件列表作为子项。

关于xml - 在 Flutter 中显示来自 XML 的动态 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56267534/

相关文章:

java - JAXB 不调用 Setter 方法

java - 使用 Camel 调用 REST URL

android - 文本小部件中数字数据的百分比波动

flutter - 来自 FutureBuilder 的 Navigator.pop

dart - Flutter 从 flask 端点响应下载 pdf

javascript - 用 jQuery 反转 DOM

c# - 在 C# 中将 Xml 反序列化为对象

java - XmlPull 属性无法转换为 Xml block 解析器

flutter - tab bar flutter tabbar 右侧溢出 88 像素

flutter 对齐在列中包含的行内不起作用