Réagir Indigènes d'extraction de données XML
Je suis nouveau à Réagir Indigènes. Essayer de faire quelques très simple apps. Ne pouvez pas comprendre comment extraire des données XML. Avec JSON, tout est clair et simple.
Mais comment récupérer le XML? Essayé de le convertir en JSON via cette et à quelques autres scripts, mais sans succès. Besoin d'aide :/
Mon code est très simple:
var xml_url = 'http://api.example.com/public/all.xml';
var ExampleProject = React.createClass({
getInitialState: function() {
return {
data: {results:{}},
};
},
componentDidMount: function() {
this.fetchData();
},
fetchData: function() {
fetch(xml_url)
.then((response) => response.json())
.then((responseData) => {
this.setState({
data: responseData.data,
});
})
.done();
},
render: function() {
return (
<View style={styles.wrapper}>
<View style={styles.container}>
<View style={styles.box}>
<Text style={styles.heading}>Heading</Text>
<Text>Some text</Text>
</View>
</View>
</View>
);
},
});
- Essayez d'utiliser
response.text()
- Aucune réponse sur ce point? J'ai couru dans le même problème. N'est-il pas pur JS XML parser là-bas?
Vous devez vous connecter pour publier un commentaire.
vous pouvez essayer https://github.com/connected-lab/react-native-xml2js ,
- Je l'utiliser pour mon projet.
vous pouvez utiliser npm install xmldom, maintenant charger DOMParser comme ci-dessous :
- Je l'utiliser pour mon projet.
Tout d'abord Réagir Natif à l'aide de
JavaScriptCore
, qui est juste un interpréteur javascript, donc pas de Modèle d'Objet de Navigateur, pas d'objet de document, pas de fenêtre, etc. C'est une raison pour laquelle vous ne pouvez pas utiliserDOMParser
par exemple.En effet Réagir vous offre un XMLHttpRequest wrapper, mais il ne comprend pas
responseXML
.Je n'ai pas trouvé de solution pour ce problème, donc je viens de créer ma propre bibliothèque pour que: réagir-native xml qui permet de parser xml et de faire des requêtes XPath pour elle:
semble que vous ne pouvez pas obtenir XML en arrière, mais vous pouvez obtenir le texte brut; utilisation
response.text()
au lieu deresponse.json()
. vous aurez toujours besoin de traiter le texte en xmlJe suis à l'aide de réagir-native, et je n'ai pas vraiment xmldom.
J'ai écrit ma propre réaction-native XML parser.
Vous pouvez le vérifier sur
https://www.npmjs.com/package/react-xml-parser
J'ai utilisé une combinaison de 2 paquets. Dans mon cas d'utilisation, j'ai eu à analyser la réponse d'une requête SOAP:
Le premier paquet est - Réagir Natif XML2JS La raison pour l'utiliser et ne pas XML2JS est que j'étais une erreur de Réagir Natif de ne pas soutenir le nœud de la bibliothèque standard. (Je suis à l'aide de l'expo ainsi.)
Le deuxième paquet de laquelle je l'ai utilisé pour l'analyse est - XML-JS. J'ai eu à utiliser le premier paquet que j'avais la même erreur de Réagir Natif de ne pas soutenir le nœud de la bibliothèque standard. J'ai utilisé ce parce qu'elle a donné une forme plus structurée résultat dans le cas d'une grande réponse XML.
J'ai eu le même problème passer quelques heures avant, j'ai découvert que je pouvais le faire comme ceci:
Espère que cela aide!