En Java, comment parsingr le XML en tant que chaîne au lieu d’un fichier?

J’ai le code suivant:

DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xmlFile); 

Comment puis-je le faire pour parsingr le XML contenu dans une chaîne au lieu d’un fichier?

J’ai cette fonction dans ma base de code, cela devrait fonctionner pour vous.

 public static Document loadXMLFromSsortingng(Ssortingng xml) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); InputSource is = new InputSource(new SsortingngReader(xml)); return builder.parse(is); } 

voir aussi cette question similaire

Une façon consiste à utiliser la version d’parsing qui prend un InputSource plutôt qu’un fichier

Un SAX InputSource peut être construit à partir d’un object Reader. Un object Reader est le SsortingngReader

Donc quelque chose comme

 parse(new InputSource(new SsortingngReader(mySsortingng))) may work. 

Les javadocs montrent que la méthode d’parsing est surchargée.

Créez un SsortingngStream ou un InputSource en utilisant votre chaîne XML et vous devriez être défini.

Convertir la chaîne en un InputStream et la transmettre à DocumentBuilder

 final InputStream stream = new ByteArrayInputStream(ssortingng.getBytes(StandardCharsets.UTF_8)); DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); builder.parse(stream); 

MODIFIER
En réponse au commentaire de bendin concernant le codage, voir la réponse de shsteimer à cette question.

J’utilise cette méthode

 public Document parseXmlFromSsortingng(Ssortingng xmlSsortingng){ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); InputStream inputStream = new ByteArrayInputStream(xmlSsortingng.getBytes()); org.w3c.dom.Document document = builder.parse(inputStream); return document; } 

Vous pouvez utiliser le package Scilca XML Progession disponible sur GitHub.

 XMLIterator xi = new VirtualXML.XMLIterator(""); XMLReader xr = new XMLReader(xi); Document d = xr.parseDocument();