2013-11-27 31 views
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(); 
} 

特別是孩子一個XML文件,我試着閱讀以下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> 

,我無法與值讀取在Vgroup標籤美國CA 2610獨立在VGroups Tag內部。我能夠讀取標籤,但是當標籤有子元素時,我無法讀取它。 請幫助。

回答

0

打印前只檢查子元素如果子元素數大於1,則獲取內部文本內容並將其保存在最後的連接點al和print