첫 번째 가져오기: DOM 구문 분석기의 팩토리 인스턴스를 가져옵니다. DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
그런 다음 DOM 팩토리에서 DOM 파서를 가져옵니다.
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
) DOM 파서가 파싱할 수 있도록 파싱할 XML 문서를 입력 스트림으로 변환합니다.
InputStream is= new FileInputStream("test1.xml");
(4) XML 문서의 입력 스트림을 구문 분석하고 문서를 얻습니다.
문서 doc=dombuilder.parse(is);
(5) XML 문서의 루트 노드를 가져옵니다.
요소 루트=doc.getDocumentElement();
(6) 노드의 자식 노드를 가져옵니다.
NodeList books=root.getChildNodes();
java.io.파일 가져오기;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
org.w3c.dom.Document 가져오기;
org.w3c.dom.Element 가져오기;
org.w3c.dom.Node 가져오기;
org.w3c.dom.NodeList 가져오기;
공개 클래스 XmlReader {
공개 정적 무효 메인(String[] args) {
XmlReader 리더 = new XmlReader();
}
공개 XmlReader(){
DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
노력하다 {
DocumentBuilder domBuilder = domfac.newDocumentBuilder();
InputStream is = new FileInputStream(new File("D:/test1.xml"));
문서 문서 = domBuilder.parse(is);
요소 루트 = doc.getDocumentElement();
NodeList 책 = root.getChildNodes();
if(책!=null){
for (int i = 0; i < books.getLength(); i++) {
노드 book = books.item(i);
if(book.getNodeType()==Node.ELEMENT_NODE) {
//(7) 노드의 속성 값을 가져옵니다.
문자열 email=book.getAttributes().getNamedItem("email").getNodeValue();
System.out.println(이메일);
//노드의 속성은 자식 노드이기도 합니다. 해당 노드 유형도 Node.ELEMENT_NODE입니다.
//(8) 하위 노드를 순환합니다.
for(노드 node=book.getFirstChild();node!=null;node=node.getNextSibling()) {
if(node.getNodeType()==Node.ELEMENT_NODE) {
if(node.getNodeName().equals("이름")) {
문자열 이름=node.getNodeValue();
문자열 이름1=node.getFirstChild().getNodeValue();
System.out.println(이름);
System.out.println(이름1);
}
if(node.getNodeName().equals("가격")) {
문자열 가격=node.getFirstChild().getNodeValue();
System.out.println(가격);
}
}
}
}
}
}
} 잡기(예외 e) {
// TODO 자동 생성된 캐치 블록
e.printStackTrace();
}
}
}