package huawei.com.service;
import huawei.com.domain.Person;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DomPersonService {
public List<Person> getPersons(InputStream inputStream) throws Throwable{
List<Person> persons = new ArrayList<Person>();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//得到SAX解析器工厂
DocumentBuilder builder = factory.newDocumentBuilder();
Document docuement = builder.parse(inputStream);
Element root = docuement.getDocumentElement();
NodeList personList = root.getElementsByTagName("person");
for(int i=0;i<personList.getLength();i++){
Person person = new Person();
Element personNode = (Element) personList.item(i);
person.setId(new Integer(personNode.getAttribute("id")));
NodeList chiildList = personNode.getChildNodes();
for(int j=0;j<chiildList.getLength();j++){
if(chiildList.item(j).getNodeType()==Node.ELEMENT_NODE){//判断当前的节点是否为元素节点
Element child = (Element) chiildList.item(j);
if("name".equals(child.getNodeName())){
person.setName(child.getFirstChild().getTextContent());
}else if("age".equals(child.getNodeName())){
person.setAge(new Integer(child.getFirstChild().getTextContent()));
}
}
}
persons.add(person);
}
return persons;
}
}