【问题标题】:how xml parsing in flutterFlutter中如何解析xml
【发布时间】:2022-07-11 18:40:37
【问题描述】:

我想在 Flutter 中解析 xml。但是当我使用 xml libariy 时,我无法在 中获得价值?如何获取元素标签的值?

我想得到像这样的值 {'plant':[NBJF,CCJF,CQBF,....] } 就像 json 一样

这是xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><fjs1:GetPlantResponse xmlns:fjs1="http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay"><fjs1:response><Response>
  <Execution>
    <Status code="0" sqlcode="0" description=""/>
  </Execution>
  <ResponseContent>
    <Parameter>
      <Record>
        <Field name="defaultplant" value="NBJF"/>
      </Record>
    </Parameter>
    <Document>
      <RecordSet id="1">
        <Master name="Master">
          <Record>
            <Field name="plant" value="CCJF"/>
          </Record>
        </Master>
      </RecordSet>
      <RecordSet id="2">
        <Master name="Master">
          <Record>
            <Field name="plant" value="CDJF"/>
          </Record>
        </Master>
      </RecordSet>
    </Document>
  </ResponseContent>
</Response>
</fjs1:response>
</fjs1:GetPlantResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

这是我的代码:

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

void main() async {
  String url = "http://erp.nb-jf.com/web/ws/r/aws_ttsrv2?wsdl";

  String xmlReq = '''  
                ''';

  http.Response response = await http.post(
      Uri.parse("http://erp.nb-jf.com/web/ws/r/aws_ttsrv2?wsdl"),
      headers: {
        'Content-Type': "text/xml; charset=UTF-8",
        'SOAPAction': "\"\"",
      },
      body: '$xmlReq');

  var rawXmlResponse = response.body;
  xmlReq = rawXmlResponse.replaceAll('&lt;', '<');
  xmlReq = xmlReq.replaceAll('&gt;', '>');

  List itemList = [];

  xml.XmlDocument xmlText = xml.XmlDocument.parse(xmlReq);
  var elements = xmlText.findAllElements("Record");

  elements.forEach((element) {
    print(element.findElements("Field"));
    
  });
}

我不知道如何获取标签中的值。

【问题讨论】:

    标签: xml flutter parsing


    【解决方案1】:

    你有两种方法来完成这项任务

    1. 使用xml: ^6.1.0 包并解析XML 响应。
    2. 或用户 xml2json: ^5.3.3 包将您的 XML 响应转换为 json 并使用它。

    【讨论】:

      猜你喜欢
      • 2020-11-29
      • 2011-12-29
      • 2019-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 2011-05-10
      • 2014-05-13
      相关资源
      最近更新 更多