从xml api获取请求并解析repsonse

时间:2017-11-29 09:49:13

标签: xml reactjs react-native xml-parsing fetch

我是新手,对原生做出反应,尤其是获取请求。我获取一个使用xml文件响应的Web服务。我试图解析它并将我想要的值传递给选择器但是,但它不起作用!对请求的响应是可以的,但问题在于解析它。我试过xmldom库和xml12js,什么都没有用......

这是我的代码:

parseSurface(s){
    const DOMParser = require('xmldom').DOMParser;
    console.log('Parsing the feed...');
    let doc = new DOMParser().parseFromString(s, 'text/xml');
    let objs = [];
    let surfs = s.getElementsByTagName('Surfaces');
    //let surfaces = doc.getElementsByTagName('surface:LIBELLE');
     //let surfaces = s.querySelectorAll('Surfaces');
     // let surface = s.querySelectorAll('surface');
     // let libelle = s.querySelector('LIBELLE');
    console.log(surfs)
}

getSurfaces(){
    fetch('myWebService?')
        .then((response) => response.text())
        .then((responseText) => {
            this.parseSurface(responseText);
        })
        .catch((err) => {
            console.log('Error fetching the feed: ', err)
    })

}

componentDidMount(){
    this.getSurfaces();
}

parseSruface如果我使用doc变量或s我在变量中输入querySelectorAll时出现此错误,与getElementByTagName或{{1相同}}:

  

获取Feed时出错:[TypeError:doc.querySelectorAll不是函数。 (在'doc.querySelectorAll('Surfaces')'中,'doc.querySelectorAll'未定义)]

我希望我很清楚,我完全迷失了,我会感激任何帮助,谢谢你。

1 个答案:

答案 0 :(得分:0)

请试试这个:

const parseString = require('react-native-xml2js').parseString;



getSurfaces(){
    fetch('http://clubonlinetest.alithya.fr/WebServices/AppliMobile.asmx/getSurfaceList?')
        .then((response) => response.text())
        .then((responseText) => {
            parseString(responseText, function (err, result) {
                console.log(response)
            });
        })
        .catch((err) => {
            console.log('Error fetching the feed: ', err)
    })

}

componentDidMount(){
    this.getSurfaces();
}