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 + "]";
}
}
ここは、MyHandlerクラスで、DefaultHandlerクラスを拡張したものです。 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);
}
}