Comment obtenir un élément particulier par le biais de JAXB d'analyse xml?
J'ai utilisé JAXB pour parser un fichier XML.Comment obtenir un élément particulier(c'est à dire un nœud enfant) par JAXB d'analyse xml sans l'analyse que l'élément de nœud.
<?xml version="1.0" encoding="UTF-8"?>
<Header>
<From>
<Credential
domain="NetworkId"><Identity>ANXXXNNN</Identity>
</Credential>
</From>
<To>
<Credential
domain="NetworkId"><Identity>ANNNXXXXXT</Identity>
</Credential>
</To>
<To>
<Credential
domain="NetworkId"><Identity>BNNXXXT</Identity>
</Credential>
</To>
</Header>
J'ai fait unmarshalling comme ça,Ça fonctionne très bien.Pour les performances,je ne veux pas les éléments en tant que nœud.Est-il autre façon de faire?
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc;
doc = db.parse(file);
NodeList node = (NodeList)doc.getElementsByTagName("TO");
JAXBElement<ToType> element = jaxbUnmarshaller.unmarshal(node.item(0),ToType.class);
Modèle d'objet, c'est comme
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ToType", propOrder = {
"credential"
})
public class ToType {
@XmlElement(name = "Credential", required = true)
protected CredentialType credential;
public CredentialType getCredential() {
return credential;
}
public void setCredential(CredentialType value) {
this.credential = value;
}
}
vous n'êtes pas à l'aide de jaxbMarshaller n'importe où dans votre extrait de code.
Je prends au sujet de tout unmarshalling seulement
Oui,Est-il un autre moyen de le faire sans l'aide d'un noeud?
Quel est votre modèle d'objet?
Je ne suis pas sûr que je comprends votre question, mais vous cherchez peut-être pour quelque chose comme: blog.bdoughan.com/2012/08/...
Je prends au sujet de tout unmarshalling seulement
Oui,Est-il un autre moyen de le faire sans l'aide d'un noeud?
Quel est votre modèle d'objet?
Je ne suis pas sûr que je comprends votre question, mais vous cherchez peut-être pour quelque chose comme: blog.bdoughan.com/2012/08/...
OriginalL'auteur thilo | 2013-01-16
Vous devez vous connecter pour publier un commentaire.
Un StAX (JSR-173) parser (inclus dans le JDK/JRE de départ avec Java SE 6) peut être utilisé. Ensuite, vous pouvez avancer la
XMLStreamReader
pour le nœud enfant et unmarshal à partir de là.Pour Plus D'Informations
OriginalL'auteur Blaise Doughan
Vous aurez à faire code suivant pour faire JAXB Unmarshalling:
Cela va vous retourner le instance de classe qui vous aurait généré à l'aide de xjc de commande.
Ensuite, vous pouvez accéder à toute propriété à l'aide de fèves de méthodes.
OriginalL'auteur Narendra Pathai