Convertir la chaîne de caractères xml pour objet Java
J'ai le code xml suivant de la chaîne. Je veux le convertir en un objet java, à la carte chaque balise avec les champs de cet objet. Son meilleur que si je peux présenter les différents noms de champ par rapport à nom de la balise. Comment je peux faire? Je suis à la recherche sur JAXB, mais je suis toujours confus au sujet de pièces comme "ns4:réponse" et les tags à l'intérieur des balises. Je vous remercie à l'avance...
<ns4:response>
<count>1</count>
<limit>1</limit>
<offset>1</offset>
<ns3:payload xsi:type="productsPayload">
<products>
<product>
<avgRating xsi:nil="true"/>
<brand>Candie's</brand>
<description>
<longDescription>
long descriptions
</longDescription>
<shortDescription>
short description
</shortDescription>
</description>
<images>
<image>
<altText>alternate text</altText>
<height>180.0</height>
<url>
url
</url>
<width>180.0</width>
</image>
</images>
<price>
<clearancePrice xsi:nil="true"/>
<regularPrice xsi:nil="true"/>
<salePrice>28.0</salePrice>
</price>
</product>
</products>
</ns3:payload>
</ns4:response>
aussi, est-il de toute façon que je peux auto convertir cette Classe Java...?
possible en double stackoverflow.com/questions/779755/...
les tags à l'intérieur des balises, c'est ce qui est source de confusion, moi? et aussi "<ns4:réponse>"
J'espère que ce n'est pas tout ce que vous avez pour la chaîne XML, parce que les préfixes d'espace de noms (
vous devez apprendre à une recherche avant de poser vos questions
possible en double stackoverflow.com/questions/779755/...
les tags à l'intérieur des balises, c'est ce qui est source de confusion, moi? et aussi "<ns4:réponse>"
J'espère que ce n'est pas tout ce que vous avez pour la chaîne XML, parce que les préfixes d'espace de noms (
ns4
etc) ne sont pas définis, de sorte que vous ne serez pas en mesure de l'analyser avec des outils standardvous devez apprendre à une recherche avant de poser vos questions
OriginalL'auteur ghTvNath | 2012-08-10
Vous devez vous connecter pour publier un commentaire.
JAXB est la Java standard (La JSR-222) pour la conversion des objets à/à partir de XML. Les points suivants devraient vous aider:
Unmarshalling à partir d'une Chaîne
Vous devez envelopper la
String
dans une instance deStringReader
avant votre JAXB impl peut unmarshal.Différents domaines et Noms XML
Vous pouvez utiliser le
@XmlElement
annotation de spécifier ce que vous souhaitez que le nom de l'élément. Par défaut JAXB regarde les propriétés. Si vous souhaitez la base des mappages sur les champs, puis vous devez définir@XmlAccessorType(XmlAccessType.FIELD)
.Espaces de noms
La
@XmlRootElement
et@XmlElement
annotations vous permettent également de spécifier l'espace de noms de qualification en cas de besoin.Pour Plus D'Informations
OriginalL'auteur Blaise Doughan
JAXB est un bon coup. Si vous avez un fichier XSD de ce document ce sera très facile. JAXB peut générer du code Java pour specidied schéma.
Si vous ne disposez pas d'un fichier XSD vous aurez besoin pour préparer les classes Java sur votre propre. Recherchez JAXB tutoriel et vérifier la documentation http://jaxb.java.net/tutorial/.
Tags dans les balises sont juste des objets imbriqués pour JAXB.
ns4
est un espace de noms. JAXB prend en charge les espaces de noms - il suffit de le rechercher dans la documentation. Vous pouvez utiliser les annotations pour présenter les différents noms de champ de balises XML. Follwo la documentation.OriginalL'auteur Piotr Gwiazda
Cas vous avez le XSD pour le ci-dessus XML.
Je vous recommande d'utiliser Jaxb.
JAXB crée des objets java à partir de fichiers XML.
Vous devez d'abord générer des classes Java à l'aide de jaxb du générateur de code qui prend XSD que l'entrée puis sérialiser/désérialiser ces fichiers xml de manière appropriée.
OriginalL'auteur NiranjanBhat
Si vous avez déjà le xml, et vient plus d'un attribut, vous pouvez le manipuler comme suit:
la méthode getCharacterDataFromElement est
OriginalL'auteur Miguel Zapata