Utilisez JAXB pour créer un object à partir d’une chaîne XML

Comment puis-je utiliser le code ci-dessous pour supprimer une chaîne XML et la mapper à l’object JAXB ci-dessous?

JAXBContext jaxbContext = JAXBContext.newInstance(Person.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); Person person = (Person) unmarshaller.unmarshal("xml ssortingng here"); 

 @XmlRootElement(name = "Person") public class Person { @XmlElement(name = "First-Name") Ssortingng firstName; @XmlElement(name = "Last-Name") Ssortingng lastName; public Ssortingng getFirstName() { return firstName; } public void setFirstName(Ssortingng firstName) { this.firstName = firstName; } public Ssortingng getLastName() { return lastName; } public void setLastName(Ssortingng lastName) { this.lastName = lastName; } } 

Pour transmettre du contenu XML, vous devez envelopper le contenu dans un Reader et le supprimer à la place:

 JAXBContext jaxbContext = JAXBContext.newInstance(Person.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); SsortingngReader reader = new SsortingngReader("xml ssortingng here"); Person person = (Person) unmarshaller.unmarshal(reader); 

Ou si vous voulez un simple liner:

 Person person = JAXB.unmarshal(new SsortingngReader(" 

Il n’y a pas de méthode unmarshal(Ssortingng) . Vous devez utiliser un Reader :

 Person person = (Person) unmarshaller.unmarshal(new SsortingngReader("xml ssortingng")); 

Mais généralement, vous obtenez cette chaîne de quelque part, par exemple un fichier. Si tel est le cas, mieux vaut passer le FileReader lui-même.

Si vous avez déjà le xml et que plusieurs atsortingbuts sont disponibles, vous pouvez le gérer comme suit:

 Ssortingng output = "1 BOGOTA6 Pereira"; DocumentBuilder db = DocumentBuilderFactory.newInstance() .newDocumentBuilder(); InputSource is = new InputSource(); is.setCharacterStream(new SsortingngReader(output)); Document doc = db.parse(is); NodeList nodes = ((org.w3c.dom.Document) doc) .getElementsByTagName("ciudad"); for (int i = 0; i < nodes.getLength(); i++) { Ciudad ciudad = new Ciudad(); Element element = (Element) nodes.item(i); NodeList name = element.getElementsByTagName("idCiudad"); Element element2 = (Element) name.item(0); ciudad.setIdCiudad(Integer .valueOf(getCharacterDataFromElement(element2))); NodeList title = element.getElementsByTagName("nomCiudad"); element2 = (Element) title.item(0); ciudad.setNombre(getCharacterDataFromElement(element2)); ciudades.getPartnerAccount().add(ciudad); } } for (Ciudad ciudad1 : ciudades.getPartnerAccount()) { System.out.println(ciudad1.getIdCiudad()); System.out.println(ciudad1.getNombre()); } 

la méthode getCharacterDataFromElement est

 public static Ssortingng getCharacterDataFromElement(Element e) { Node child = e.getFirstChild(); if (child instanceof CharacterData) { CharacterData cd = (CharacterData) child; return cd.getData(); } return ""; }