2017-12-05 16 views
1

동적 XML 파일을 읽고 (알려진 구조 없음) 관련 태그 이름과 값을 해시 맵 (예 : metadata<tagName, Value>)에 넣습니다.루트 요소를 제외한 XML 구문에서 태그 이름이 누락되었습니다.

여기 내 문제는 tagName을 가져올 수 없지만 루트 tagName과 전체 XML의 모든 값만 추가한다는 것입니다.

내 XML은 다음과 같습니다

public static Map<String,String> getMetaDataFromOrbeonXML(File fXmlFile) throws SAXException, ParserConfigurationException, IOException 
    { 
    Map metaData = new HashMap(); 
    String formName=""; 
    String docID = ""; 
    try { 

     DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
     Document doc = dBuilder.parse(fXmlFile); 

     doc.getDocumentElement().normalize(); 

     System.out.println("Root element :" +  doc.getDocumentElement().getNodeName()); 

     NodeList nList = doc.getElementsByTagName("form"); 

    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; 

      docID = eElement.getElementsByTagName("docID").item(0).getTextContent(); 
       metaData.put("docID", docID); 
       metaData.put("appName", APP_NAME); 
       metaData.put(eElement.getTagName(), eElement.getTextContent()); 

       System.out.println("META DATA MAP: "+ metaData.toString()); 

     } 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

     return metaData; 
} 

그리고 넣어 밖으로는 다음과 같습니다 :

<?xml version="1.0" encoding="UTF-8"?> 
      <form kwf="VARA"> 
       <sec1> 
        <docID>2d2c5bf209b79d8b1a1f840ce4ce4030e66a76d6</docID> 
        <qrCode>xx.jpg</qrCode> 
        <title>NOOO FORM NAME</title> 
        <ELO_VARAFNAME>NO</ELO_VARAFNAME> 
        <ELO_VARALNAME>NAME</ELO_VARALNAME> 
        <ELO_VARAEMAIL>[email protected]</ELO_VARAEMAIL> 
        <ELO_VARAORBEONDOCID>2d2c5bf209b79d8b1a1f840ce4ce4030e66a76d6</ELO_VARAORBEONDOCID> 
       </sec1> 
      </form> 

내 코드입니다

{form=     2d2c5bf209b79d8b1a1f840ce4ce4030e66a76d6 
         xx.jpg 
         NOOO FORM NAME 
         NO 
         NAME 
         [email protected] 
         2d2c5bf209b79d8b1a1f840ce4ce4030e66a76d6 

       , docID=2d2c5bf209b79d8b1a1f840ce4ce4030e66a76d6, appName=VIRGINAUSI, formName=AITSLForm} 

태그 이름은 루트 요소를 제외하고지도에 누락 . 도와주세요 !

답변