复制代码代码如下:
แพ็คเกจ com.test;
นำเข้า java.io.File;
นำเข้า java.io.FileInputStream;
นำเข้า java.util.ArrayList;
นำเข้า java.util.List;
นำเข้า javax.xml.parsers.SAXParser;
นำเข้า javax.xml.parsers.SAXParserFactory;
นำเข้า org.xml.sax.Attributes;
นำเข้า org.xml.sax.SAXException;
นำเข้า org.xml.sax.helpers.DefaultHandler;
SaxXML คลาสสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
ไฟล์ file = ไฟล์ใหม่ ("e:/People.xml");
พยายาม {
SAXParserFactory spf = SAXParserFactory.newInstance();
ตัวแยกวิเคราะห์ SAXParser = spf.newSAXParser();
ตัวจัดการ SaxHandler = SaxHandler ใหม่ ("บุคคล");
parser.parse (FileInputStream ใหม่ (ไฟล์), ตัวจัดการ);
รายการ<คน> peopleList = handler.getPeoples();
สำหรับ(บุคคล ผู้คน : peopleList){
System.out.println(people.getId()+"/t"+people.getName()+"/t"+people.getEnglishName()+"/t"+people.getAge());
-
} จับ (ข้อยกเว้นจ) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
-
-
-
คลาส SaxHandler ขยาย DefaultHandler {
รายชื่อส่วนตัวประชาชน = null;
คนส่วนตัว คน;
สตริงส่วนตัว currentTag = null;
สตริงส่วนตัว currentValue = null;
สตริงส่วนตัว nodeName = null;
รายชื่อสาธารณะ getPeoples () {
กลับชาติ;
-
SaxHandler สาธารณะ (ชื่อโหนดสตริง) {
นี้.nodeName = nodeName;
-
@แทนที่
โมฆะสาธารณะ startDocument () พ่น SAXException {
// TODO 当读到一个เปิด始标签的时候,会触发这个方法
super.startDocument();
peoples = new ArrayList<คน>();
-
@แทนที่
โมฆะสาธารณะ endDocument () พ่น SAXException {
// TODO 自动生成的方法存根
ซุปเปอร์.endDocument();
-
@แทนที่
โมฆะสาธารณะ startElement (สตริง uri, สตริงชื่อท้องถิ่น, ชื่อสตริง,
คุณลักษณะแอตทริบิวต์) พ่น SAXException {
// TODO 当遇到文档的餴的时候,调用这个方法
super.startElement(uri, localName, ชื่อ, คุณลักษณะ);
ถ้า (name.equals (nodeName)) {
คน = คนใหม่();
-
ถ้า (แอตทริบิวต์ != null && คน != null) {
สำหรับ (int i = 0; i <attributes.getLength(); i++) {
ถ้า(attributes.getQName(i).equals("id")){
people.setId(attributes.getValue(i));
-
อื่นถ้า(attributes.getQName(i).equals("th")){
people.setEnglishName(attributes.getValue(i));
-
-
-
currentTag = ชื่อ;
-
@แทนที่
อักขระโมฆะสาธารณะ (char [] ch, int start, int length)
พ่น SAXException {
// TODO 这个方法用来处理在XML文件中读到的内容
super.Characters(ch, เริ่มต้น, ความยาว);
ถ้า (currentTag != null && คน != null) {
currentValue = สตริงใหม่ (ch, เริ่มต้น, ความยาว);
if (currentValue != null && !currentValue.trim().equals("") && !currentValue.trim().equals("/n")) {
ถ้า(currentTag.เท่ากับ("ชื่อ")){
people.setName(ค่าปัจจุบัน);
-
อย่างอื่นถ้า(currentTag.เท่ากับ("อายุ")){
people.setAge(ค่าปัจจุบัน);
-
-
-
แท็กปัจจุบัน = โมฆะ;
ค่าปัจจุบัน = null;
-
@แทนที่
โมฆะสาธารณะ endElement (สตริง uri, สตริงชื่อท้องถิ่น, ชื่อสตริง)
พ่น SAXException {
// TODO 在遇到结束标签的时候,调用这个方法
super.endElement(uri, localName, ชื่อ);
ถ้า (name.equals (nodeName)) {
peoples.add(คน);
-
-
-