Lectura de un archivo XML con un niño en particular que tiene un nodo múltiple
Frecuentes
Visto 413 veces
0
try {
File fXmlFile = new File("C:/Users/priran/Desktop/vendavo20131118030948370.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
//optional, but recommended
//read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-
//parsing-with-java-how-does-it-work
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("VUser");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println(eElement.getElementsByTagName("VName").item(0)
.getTextContent());
System.out.println(eElement.getElementsByTagName("VPassword").item(0)
.getTextContent());
System.out.println(eElement.getElementsByTagName("VFullName").item(0)
.getTextContent());
System.out.println(eElement.getElementsByTagName("VValidity").item(0).
getTextContent());
System.out.println(eElement.getElementsByTagName("VDefaultUOM").item(0)
.getTextContent());
System.out.println(eElement.getElementsByTagName("VDefaultCurrency").item(0)
.getTextContent());
System.out.println(eElement.getElementsByTagName("VGroups").item(0).
getTextContent());
System.out.println(eElement.getElementsByTagName("VRoles").item(0).
getTextContent());
System.out.println(eElement.getElementsByTagName("VIsSysAdmin").item(0).
getTextContent());
System.out.println(eElement.getElementsByTagName("VUIProfile").item(0).
getTextContent());
System.out.println(eElement.getElementsByTagName("VTimeZone").item(0).
getTextContent());
System.out.println(eElement.getElementsByTagName("VDefaultLocale").item(0).
getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
I tried to read the below XML
- <entity-data>
- <VUser>
<VName>Name</VName>
<VPassword>Password</VPassword>
<VFullName>FullName</VFullName>
<VValidity>Validity</VValidity>
<VDefaultUOM>DefaultUOM</VDefaultUOM>
<VDefaultCurrency>DefaultCurrency</VDefaultCurrency>
- <VGroups>
<VGroup>Groups</VGroup>
</VGroups>
- <VRoles>
<VRole>Roles</VRole>
</VRoles>
<VIsSysAdmin>IsSysAdmin</VIsSysAdmin>
<VUIProfile>UIProfile</VUIProfile>
<VTimeZone>TimeZone</VTimeZone>
<VDefaultLocale>DefaultLocale</VDefaultLocale>
</VUser>
- <VUser>
<VName>MCLENDJ</VName>
<VPassword>abcdefg1</VPassword>
<VFullName>Jack McLendon</VFullName>
<VValidity>1/1/2001..eot</VValidity>
<VDefaultUOM>Base</VDefaultUOM>
<VDefaultCurrency>USD</VDefaultCurrency>
- <VGroups>
<VGroup>AllCountrys</VGroup>
<VGroup>AllProducts</VGroup>
</VGroups>
- <VRoles>
<VRole>BusinessAnalyst</VRole>
</VRoles>
<VIsSysAdmin>FALSE</VIsSysAdmin>
<VUIProfile>BusinessAnalyst</VUIProfile>
<VTimeZone>US/Eastern</VTimeZone>
<VDefaultLocale>en_US</VDefaultLocale>
</VUser>
- <VUser>
<VName>DUVALLM</VName>
<VPassword>abcdefg1</VPassword>
<VFullName>Mark Duvall</VFullName>
<VValidity>1/1/2001..eot</VValidity>
<VDefaultUOM>Base</VDefaultUOM>
<VDefaultCurrency>USD</VDefaultCurrency>
- <VGroups>
<VGroup>US</VGroup>
<VGroup>CA</VGroup>
<VGroup>2610</VGroup>
</VGroups>
- <VRoles>
<VRole>BusinessAnalyst</VRole>
</VRoles>
<VIsSysAdmin>FALSE</VIsSysAdmin>
<VUIProfile>BusinessAnalyst</VUIProfile>
<VTimeZone>US/Eastern</VTimeZone>
<VDefaultLocale>en_US</VDefaultLocale>
</VUser>
</entity-data>
and I am not able to read the VGroup tag with the values US CA 2610 separately inside VGroups Tag.I am able to read the tags,But when a tag is having child element I am not able to read that. Please Help.
1 Respuestas
0
Before printing just check for elements child if child count greater than 1 then get inner text content and save it somewhere at last concatenate al and print
respondido 27 nov., 13:09
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java xml or haz tu propia pregunta.