【问题标题】:js getting data from xml response.text()js 从 xml response.text() 获取数据
【发布时间】:2016-11-26 22:56:52
【问题描述】:

我正在向发送回 XML 格式的 API 发出 ajax 请求。使用以下代码打印出 responseXml 数据,但我不知道如何解析它并访问数据(如 item.line 或 item.origTime)。

我应该以某种方式或其他方式使用 JSON 解析器吗?

class App extends Component {
  constructor(props) {
    super(props);

    this.state = { schedules: [] };

    fetch('http://api.bart.gov/api/sched.aspx?cmd=stnsched&key=' + API_KEY + '&orig=12th&date=today')
      .then((response) => response.text())
      .then((responseXML) => {
        this.setState({schedules: responseXML});
        console.log(responseXML);
      })
      .catch((error) => {
        console.log(error);
      });
  }

  render () {
    return (
      <div>
        <SelectList />
        <TimeTable schedules={this.state.schedules} />
      </div>
    )
  }
}

xml 响应

<root>
  <uri>...</uri>
  <date>7/22/2016</date>
  <sched_num>39</sched_num>
  <station>
    <name>12th St. Oakland City Center</name>
    <abbr>12TH</abbr>
    <item line="ROUTE 7" trainHeadStation="MLBR" origTime="4:36 AM" destTime="5:21 AM" trainIdx="1" bikeflag="1"/>
    <item line="ROUTE 2" trainHeadStation="PITT" origTime="4:37 AM" destTime="5:17 AM" trainIdx="1" bikeflag="1"/>
    <item line="ROUTE 3" trainHeadStation="RICH" origTime="4:37 AM" destTime="5:00 AM" trainIdx="1" bikeflag="1"/>
    <item line="ROUTE 1" trainHeadStation="SFIA" origTime="4:43 AM" destTime="5:28 AM" trainIdx="1" bikeflag="1"/>
    ......

【问题讨论】:

标签: javascript json xml reactjs xml-parsing


【解决方案1】:

这里是代码示例,检查控制台输出: https://jsfiddle.net/5rddp7tx/

const xmlStr=`
<root>
  <uri>...</uri>
  <date>7/22/2016</date>
  <sched_num>39</sched_num>
  <station>
    <name>12th St. Oakland City Center</name>
    <abbr>12TH</abbr>
    <item line="ROUTE 7" trainHeadStation="MLBR" origTime="4:36 AM" destTime="5:21 AM" trainIdx="1" bikeflag="1"/>
    <item line="ROUTE 2" trainHeadStation="PITT" origTime="4:37 AM" destTime="5:17 AM" trainIdx="1" bikeflag="1"/>
    <item line="ROUTE 3" trainHeadStation="RICH" origTime="4:37 AM" destTime="5:00 AM" trainIdx="1" bikeflag="1"/>
    <item line="ROUTE 1" trainHeadStation="SFIA" origTime="4:43 AM" destTime="5:28 AM" trainIdx="1" bikeflag="1"/>
  </station>
</root>
`
var myObject = JXON.build(JXON.stringToXml(xmlStr));
console.log(myObject);
console.log(myObject.root.station.item[2].$line);

【讨论】:

    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    相关资源
    最近更新 更多