2016-07-22 2 views
0

Я делаю и запрос ajax API, который отправляет обратно формат XML. В следующем коде данные responseXml распечатываются, но я не знаю, как я могу разобрать его и получить доступ к данным (например, item.line или item.origTime).js получение данных из xml response.text()

Должен ли я использовать парсер 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"/> 
    ...... 
+0

jxon является то, что вам нужно. https://github.com/tyrasd/jxon –

+0

Цзян, не могли бы вы написать пример кода? –

ответ

1

здесь код exmaple, проверьте вывод на консоль: 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); 
Смежные вопросы