xml 버전 = "1.0"인코딩 = "UTF-8"?>java:
< 연락처 >
< 개인 ID="1"입니다>
< 이름> 인코더
< 이름> 자바
< 모바일> 054124587
< 이메일> codeurjava@gmail.com
인>
< 개인 ID="2"입니다>
< 이름> 인코더
< 이름> C++
< 모바일> 062148795
< 이메일> codeurcplusplus@gmail.com
인>
연락처>
import javax.xml.parsers.SAXParser;Execution:
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class ReadFileXML{
public static void main(String argv[]) {
try {
//sax parser
SAXParserFactory spfactory = SAXParserFactory.newInstance();
//파서의 인스턴스 가져오기
SAXParser saxParser = spfactory.newSAXParser();
/*세 가지 메서드 모두 DefaltHandler에서 선언됩니다. /> corp
DefaultHandler 핸들러 = new DefaultHandler() {
부울 bnom = false;
부울 bprefirst name = false;
부울 bmobile = false;
부울 bemail = false;
/*이 메서드는 파서가
여는 태그 '<'를 만날 때마다 호출됩니다. */
public void startElement(String uri, String localName,
String qName,Attributes attributes) throws SAXException{
if (qName.equalsIgnoreCase("name")) {
bnom = true;
}
if (qName.equalsIgnoreCase("이름")) {
bfirstname = true;
}
if (qName.equalsIgnoreCase("모바일")) {
bmobile = true;
}
if (qName.equalsIgnoreCase("이메일")) {
bemail = true;
}
}
/*이 메서드는 파서가 닫는 태그 '>'를 만날 때마다 호출됩니다
닫는 태그 '' */
public void endElement(String uri, String localName,
String qName) throws SAXException {
if (qName.equalsIgnoreCase("name")) {
bnom = false;
}
if (qName.equalsIgnoreCase("이름")) {
bfirstname = false;
}
if (qName.equalsIgnoreCase("모바일")) {
bmobile = false;
}
if (qName.equalsIgnoreCase("이메일")) {
bemail = false;
}
}
/*'<'와 '>' 사이에 저장된 데이터를 출력합니다. */
public void characters(char ch[], int start,
int length)는 SAXException {
if (bnom) {
System.out.println("이름: " +
new String(ch, 시작, 길이));
bnom = 거짓;
}
if (bprename) {
System.out.println("이름: " +
new String(ch, start, length));
b첫 번째 이름 = false;
}
if (bmobile) {
System.out.println("모바일 : " +
new String(ch, start, length));
bmobile = 거짓;
}
if (bemail) {
System.out.println("Email : " +
new String(ch, start, length));
bemail = 거짓;
}
}
};
saxParser.parse("exemple.xml", 핸들러);
} catch (예외 e) {
e.printStackTrace();
}
}
}
성: coder
이름: java
모바일: 054124587
Email: codeurjava@gmail.com
성: coder
이름: c++
모바일: 062148795
이메일: codeurcplusplus@gmail.com
Please disable your ad blocker and refresh the window to use this website.