从SAMHSA API解析XML响应

时间:2017-07-19 23:31:54

标签: javascript xml reactjs axios xml2js

我正在尝试从samhsa.org API获取并显示React应用程序中的数据。我能够console.log一个XML字符串虽然我似乎无法得到节点值。我上周试图解决这个问题已经筋疲力尽了。请原谅我,我正在学习React而且没有XML经验。 我跑的时候:

import React from 'react';
import axios from 'axios';
import PropTypes from 'prop-types';
import { parser, parseString } from 'xml2js';


function ResourcesGrid(props) {
  return (
    <div>
      <ul className='resources-list'>
        {props.resources.map((resource) => {
          return (
            <li key={resource.title} className='resource-item'>
              <ul className='space-list-items'>
                <li>{resource.description}</li>

              </ul>
            </li>
          )
        })}
      </ul>
    </div>
  )
}

ResourcesGrid.propTypes = {
  resources: PropTypes.array.isRequired
}

export default class Resources extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      data: []
    }
  }
  componentDidMount () {
    let xml = 'http://content.samhsa.gov/ext/api/items?q-taxo=PanicDisorders~Recovery';
      return axios.get(xml)
    .then(function (res) {
      console.log(res.data);
      return res.data;
    });
    this.setState = {
      resources: resources
    }
  }
  render() {
    return (
      <div>
      {!this.state.resources
        ? <p>LOADING...</p>
        : <ResourcesGrid resources={this.state.resources} />
      }`enter code here`
      </div>
    )
  }
}

我得到一个包含XML字符串的对象:

An object that contains a XML string

当我记录res.data时,我得到一个字符串。 我无法弄清楚如何进入下一个级别(EX:res.data["description"])。

我试过'xml2js':

componentDidMount () {
    let xml = 'http://content.samhsa.gov/ext/api/items?q-taxo=PanicDisorders~Recovery';
      return axios.get(xml)
    .then(function (res) {
      parser.parseString(res, function(err,result){
        resData = result['data'];
        console.log(resData);
      });
      return resData;
    });
    this.setState = {
      resources: resources
    }
  }

并获取TypeError: Cannot read property 'parseString' of undefined

TypeError: Cannot read property 'parseString' of undefined

我也试过将它转换为JSON。 我离开了吗?我需要帮助!

0 个答案:

没有答案