使用dom解析java中的xml 古玛 第一十字街 钦奈 泰米尔纳德邦 印度 600001 TCS 男性

使用dom解析java中的xml 古玛 第一十字街 钦奈 泰米尔纳德邦 印度 600001 TCS 男性,xml,dom,Xml,Dom,我希望使用dom以这种方式获得输出。 身份证号码:1 姓名:库马尔 地址: 街道: 城市: 声明: 国家: 邮政编码: 公司id 公司: 性别: 我无法访问街道、城市,即所有子节点及其属性。 这是我的密码 <persons> <people id="1"> <name>Kumar</name> <address> <street doorNumber="1a">Fi

我希望使用dom以这种方式获得输出。 身份证号码:1 姓名:库马尔 地址: 街道: 城市: 声明: 国家: 邮政编码: 公司id 公司: 性别:

我无法访问街道、城市,即所有子节点及其属性。 这是我的密码

 <persons>  
    <people id="1">
       <name>Kumar</name>

       <address>
        <street doorNumber="1a">First Cross Street</street>

        <city>Chennai</city>

        <state>TamilNadu</state>

        <country>India</country>

        <postcode>600001</postcode>

      </address>

      <Company id="C101">TCS</Company>

    <sex>Male</sex>
  </people>
</persons>    
NodeList nList=doc.getElementsByTagName(“人”);
对于(int-temp=0;temp
一般来说,解析xml时需要获得两样东西:属性和内容。 因此,添加两种方法:

getAttrs(文档文档文档、字符串标记名、字符串属性)

getContent(文档文档、字符串标记名)

以下是主要功能:

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


        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("People ID:" +eElement.getAttribute("id"));
        System.out.println("Name:" +eElement.getElementsByTagName("name").item(0).getTextContent());

        System.out.println("Address:" +eElement.getElementsByTagName("address").item(0).getTextContent());  

        System.out.print("Sex:" +eElement.getElementsByTagName("sex").item(0).getTextContent()); 

}
输出为:

根元素:persons-People-ID:1;名称:Kumar;地址:1a, 印度泰米尔纳德邦钦奈;邮政编码:600001;公司ID:C101;公司 姓名:TCS;人员性别:男性

祝你好运

public static void main(String args[]){
        
        try{
            File xmlFile = new File("C:/Users/syang/Desktop/Workspace/Test Station/ParseXMl/rec/testing1.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document xmlDom = dBuilder.parse(xmlFile);
            
            //normalization
            xmlDom.getDocumentElement().normalize();
            
            System.out.println("Root element: " + xmlDom.getDocumentElement().getNodeName());
            
            String id = getAttrs(xmlDom,"people","id");
            String name = getContent(xmlDom,"name");
            String doorNumber = getAttrs(xmlDom,"street","doorNumber");
            String streetName = getContent(xmlDom,"Street");
            String city = getContent(xmlDom,"city");
            String state = getContent(xmlDom,"state");
            String country = getContent(xmlDom,"country");
            String postcode = getContent(xmlDom,"postcode");
            String companyId = getAttrs(xmlDom,"Company","id");
            String companyName = getContent(xmlDom,"Company");
            String sex = getContent(xmlDom,"sex");
                
            System.out.println("People ID: " + id + "; Name: " + name + "; Address: " + doorNumber +
                    " " + streetName + ", " + city + ", " + state + ", " + country + "; Postcode: " + postcode +
                    "; Company ID: " + companyId + "; Company Name: " + companyName + "; People Sex: " + sex);
            
            
        }catch (Exception e){
            e.printStackTrace();
        }
        
    }
    
    private static String getAttrs(Document doc, String tagName, String Attr){
        String result = "";
        
        NodeList nList = doc.getElementsByTagName(tagName);
        if(nList.getLength()>0){
            Element eElement = (Element)nList.item(0);
            String AttrStr = eElement.getAttribute(Attr);
            if(!"".equals(AttrStr )){
                result = String.valueOf(AttrStr);
            }
        
        }
        return result;
    }
    
    private static String getContent(Document doc, String tagName){
        String result = "";
        
        NodeList nList = doc.getElementsByTagName(tagName);
        if(nList.getLength()>0){
            Element eElement = (Element)nList.item(0);
            String contentStr = eElement.getTextContent();
            if(!"".equals(contentStr)){
                result = String.valueOf(contentStr);
            }
        
        }
        return result;
    }