使用不一致的标记在java中解析xml

时间:2014-03-26 11:38:45

标签: java xml xml-parsing

我正在尝试使用DOM解析器解析java中的xml文件,并且它正常工作。 我遇到的问题是,如果标签不一致,我会收到错误。例如,我有一个xml文件,如下所示

<employee>
<employeeid></employeeid>
<name></name>
<secondname></secondname>
</employee>
<employee>
<employeeid></employeeid>
<name></name>
<secondname></secondname>
</employee>
<employee>
<employeeid></employeeid>
<secondname></secondname>
</employee>

因为最后一个元素中缺少name标签,我得到一个错误,但是如果我把它放进去就可以了。有没有办法解决这个问题?

System.out.println(“doc的根元素是”+             。doc.getDocumentElement()getNodeName());

NodeList listOfCourses = doc.getElementsByTagName("employee");
int totalCourses = listOfCourses.getLength();
System.out.println("Total no of courses : " + totalCourses);

for(int s=0; s<listOfCourses.getLength() ; s++){


    Node firstCourseNode = listOfCourses.item(s);
    if(firstCourseNode.getNodeType() == Node.ELEMENT_NODE){


        Element firstCourseElement = (Element)firstCourseNode;

        //-------
        NodeList employeeList = firstCourseElement.getElementsByTagName("employeeId");
        Element employeeElement = (Element)employeeList.item(0);


        NodeList textFNList = employeeElement.getChildNodes();
        System.out.println("CourseId : " + 
               ((Node)textFNList.item(0)).getNodeValue().trim());

        //-------
        NodeList titleList = firstCourseElement.getElementsByTagName("name");
        Element titleElement = (Element)titleList.item(0);

        NodeList textLNList = titleElement.getChildNodes();
        System.out.println("Title : " + 
               ((Node)textLNList.item(0)).getNodeValue().trim());

        //----
        NodeList descriptionList = firstCourseElement.getElementsByTagName("secondname");
        Element ageElement = (Element)descriptionList.item(0);

        NodeList textdescrList = ageElement.getChildNodes();
        System.out.println("Description : " + 
               ((Node)textdescrList.item(0)).getNodeValue().trim());

0 个答案:

没有答案