L'analyse de l'attribut XML avec DOM parser
Je suis actuellement à l'analyse de XML, mais je ne suis pas tout à fait sûr de savoir comment analyser le "statut" de l'attribut "message":
<message status="test"> <text>sometext</text> <msisdn>stuff</msisdn> </message>
Voici le code, j'ai coupé tout ce qui est inutile:
NodeList nodeLst = doc.getElementsByTagName("message");
for (int s = 0; s < nodeLst.getLength(); s++) {
Node fstNode = nodeLst.item(s);
if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
Element fstElmnt = (Element) fstNode;
NodeList numberNmElmntLst = fstElmnt
.getElementsByTagName("msisdn");
Element numberNmElmnt = (Element) numberNmElmntLst.item(0);
NodeList numberNm = numberNmElmnt.getChildNodes();
String phoneNumber = ((Node) numberNm.item(0))
.getNodeValue().substring(2);
NodeList txtNmElmntLst = fstElmnt
.getElementsByTagName("text");
Element txtNmElmnt = (Element) txtNmElmntLst.item(0);
NodeList txtNm = txtNmElmnt.getChildNodes();
String text = ((Node) txtNm.item(0)).getNodeValue();
NodeList rcvNmElmntLst = fstElmnt
.getElementsByTagName("received");
Element rcvNmElmnt = (Element) rcvNmElmntLst.item(0);
NodeList rcvNm = rcvNmElmnt.getChildNodes();
String recievedDate = ((Node) rcvNm.item(0)).getNodeValue();
}
}
Quelqu'un peut-il me guider comment c'est fait?
Merci d'avance.
OriginalL'auteur JavaCake | 2012-02-03
Vous devez vous connecter pour publier un commentaire.
Nœud.getAttributes()
Vous pourriez éviter la traversée si vous utiliser XPATH pour récupérer les données. Lire ce tutoriel.
aNode désigne le nœud pour lequel vous souhaitez récupérer l'attribut. Dans votre cas, c'est le Nœud se référant à un "message" de l'élément.
avez-vous l'esprit en donnant exemple de mise en œuvre basé sur mon code? Je ne peux pas déterminer exactement comment il faut faire.
j'ai édité mon code. Je suppose que le "message" est l'élément racine de votre xml. si c'est pour qu'il fonctionne. essayez-le et laissez-moi savoir. Vous pouvez obtenir de l'élément racine à l'aide de la doc.getDocumentElement() dans les DOM
je viens de réaliser que le "message" n'est pas l'élément racine. vous devez appeler cette méthode sur fstElmnt. j'ai édité mon code
OriginalL'auteur Aravind R. Yarram
J'ai été jouer avec Apache Xerces pour l'analyse des DOM. Mais c'était horrible tâches. Si vous pouvez prendre un coup d'oeil à jsoup.
Donc, si votre question a une réponse en Jsoup, ce serait:
OriginalL'auteur