отображение результата XML в виде массива в компоненте - PullRequest
0 голосов
/ 11 октября 2019

У меня проблема с ответом xml от метода httpclient GET. я хочу показать ответ в виде столбца: значение, например: <tarif>100</tarif> результат, который я хочу показать, tarif:100 в моем HTML.

как я могу это сделать. Я попытался выполнить foreach с помощью большого количества кода, и это сработало, но я думаю, что есть лучшее решение для этого.

вот мой код в моем компоненте:

this.http.get('http://website.com?' + contenu, { responseType: 'text'})
      .subscribe(response  =>  this.contenuResult = response);

в моем HTML у меня есть текст из ответа, подобного этому:

<?xml version="1.0" encoding="UTF-8"?><tarification><numdem>25322733</numdem><code>1</code></tarification>

как я могу войти вмой HTML примерно так:

numdem: 25322733
code: 1

Спасибо, что звали на помощь ^^

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Я нашел решение,

в моем компоненте:

    sendToWebService(contenu) {


    return this.http.get('http://www.tarif_xml.php?' + contenu, {responseType: 'text'})

      .subscribe(response => this.contenuResult = this.parseXml(response));
  }

  parseXml(xmlStr) {
    const parser = require('xml2js').parseString;
    parser(xmlStr, function (err, result) {
      console.log(result);
    });
  }

вы также должны установить rxmljs и stream, таймеры с angular-cli

и вы должныпоместите этот код в ваш index.html:

 <script>
    var global = global || window;
    var Buffer = Buffer || [];
    var process = process || {
      env: { DEBUG: undefined },
      version: []
    };
  </script>
0 голосов
/ 11 октября 2019

Попробуйте сделать JSON из XML. Затем вы можете получить к нему доступ как к объекту. Ваши компоненты

function parseXml(xmlStr) {
    let result;
    var parser = require('xml2js');
    parser.Parser().parseString(xmlStr, (e, r) => {result = r});
    return result;
}

xml2js должны быть встроены в angular-cli

ex:

.subscribe(response  =>  this.contenuResult = this.parseXml(response));

Но если это работает,Вы не можете делать это все время, поэтому либо оберните httpClient, либо создайте базовый сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...