0
SAXParser에서 새로운 요소입니다. XML 파일에서 요소 (DefaultHandler 클래스의 characters() 메서드를 사용하여 요소를 읽으려고합니다. 요소가오고 있지만 공백이오고 있습니다.DefaultHandler의 characters() 메소드에서 공백을 제거하는 방법?
Here is my code:-
student.xml
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student>
<sno>10</sno>
<sname>Vikas</sname>
</student>
</students>
here is Student.java:-
package com.vikubabu;
public class Student {
private Integer sno;
private String sname;
public Integer getSno() {
return sno;
}
public void setSno(Integer sno) {
this.sno = sno;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Override
public String toString() {
return "Student [sno=" + sno + ", sname=" + sname + "]";
}
}
다음은 DefaultHandler 클래스를 확장하는 MyHandler 클래스입니다. 그들이 당신의 XML에 존재하기 때문에 MyHandler.java:-
package com.vikubabu;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MyHandler extends DefaultHandler {
StringBuilder builder;
@Override
public void startDocument() throws SAXException {
//System.out.println();
builder=new StringBuilder();
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String tag= new String(ch,start,length);
builder.append(tag);
System.out.println(tag);
}
@Override
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException {
// TODO Auto-generated method stub
super.ignorableWhitespace(ch, start, length);
}
}
and here finally,
App.java which containing the main method:-
package com.vikubabu;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.ParserFactory;
public class App {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setIgnoringElementContentWhitespace(Boolean.TRUE);
saxParserFactory.setNamespaceAware(Boolean.TRUE);
SAXParser saxParser = saxParserFactory.newSAXParser();
MyHandler myHandler=new MyHandler();
saxParser.parse("student.xml", myHandler);
}
}