Ich versuche, einen RSS Reader mit React zu machen. Ich habe einige RSS-Feeds (http://www.economist.com/sections/economics/rss.xml), die Elemente in einem CDATA-Abschnitt enthalten und HTML-Markup enthalten. Was ist der "React" Weg damit umzugehen?ReactJS und XML
Mein Verständnis ist, dass normalerweise, wenn Sie regelmäßig verwenden Javascript/jquery ein XML-Dokument zu analysieren, dass Sie würde nur die Daten erhalten und direkt an das HTML-Dokument schreiben, so etwas wie
document.getElementById('target').innerHTML
=xmlDoc.getElementsByTagName('description')[0].childNodes[0].data
Aber da Reagieren verwendet ein virtuelles DOM, das nicht möglich ist. Wenn Sie versuchen, zu tun
import React from 'react'
const Component = (props) => {
return (
<div>{xmlDoc.getElementsByTagName('description')[0].childNodes.data}</div>
)
}
export default Component
würde den Abschnitt als eine Zeichenfolge voller HTML-Tags anzeigen.
Ich fragte mich, ob es einen richtigen oder bevorzugten Weg gab, damit umzugehen. Ich bin mir bewusst, gefährlich gesetztInnerHTML, aber würde es vorziehen, wenn möglich zu vermeiden, da React Menschen davon abhält, es zu benutzen. Momentan bin ich mit DomParser beschäftigt und versuche, bestimmte Tags aus der CDATA-Zeichenfolge zu extrahieren, und ich muss mich fragen, ob es etwas Besseres gibt, das ich einfach nicht über Google gefunden und die Dokumentation gelesen habe.