자바 해석 XML 상세 설명

8512 단어 자바XML
XML 의 주요 용도
  • -데이터 저장 및 데이터 설명
  • --우수한 프로필
  • -소형 데이터베이스
  • 에 해당 합 니 다.
  • -XML 은 어떠한 프로 그래 밍 언어 에 도 의존 하지 않 고 독립 된 W3C 가 제공 하 는 규범 이기 때문에 다양한 언어 간 의 데이터 교환(중점)
  • 을 완성 할 수 있 습 니 다.
    XML 의 문법 이 엄격 하고 대소 문 자 를 완전히 구분 합 니 다.
  • XMLeXtensible Markup Language-사물 자 체 를 묘사 합 니 다.xml

  • XSL(eXtensible Stylesheet Language-수식 XML XSL 파일 에 도 별도의 파일 이 있 습 니 다.파일 접미사.xsl
    다음 진 프로그램 을 통 해 xsl 파일 을 도입 합 니 다.
    
    <?xml-stylesheet type="text/xsl" href="student.xsl"?>
    DTDDocment Type Definition-xml 을 약속 한 탭 은 XML 파일 에서 만 탭 을 작성 할 수 있 습 니 다.탭 에 서 는 속성 DTD 에 단독 파일,파일 접미사.dtd 만 작성 할 수 있 습 니 다.
    DTD 실례

    Schema-DTD 보다 xml 태그 와 형식 을 약속 합 니 다.(XML 파일 제약)schema 는 별도의 파일,파일 접미사.xsd/.xml 이 있 습 니 다.
    실례 는:
    
    <?xml version="1.0" encoding="gb2312"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    	<xs:element name="  ">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element name=" ">
    					<xs:element name=" "  minoccurs="1"></xs:element>
    					<xs:element name=" "></xs:element>
    					<xs:element name=" ">
    						<xs:attribute name="unit">
    							<xs:enumeration value="RMB"/>
    							<xs:enumeration value="  "/>
    							<xs:enumeration value="  "/>
    						</xs:attribute>
    					</xs:element>
    				</xs:element>
    		</xs:sequence>
    		</xs:complexType>
    	</xs:element>
    </xs:schema>
    
    확장 가능 한 이유:DTD 수정 가능
    대비 HTML
    HTML( Hyper Text Markup language
    *하이퍼텍스트 전송 태그 문(프로그래머 가 스스로 확장 할 수 없 음)
    *HTML 주요 용도:페이지 전시,데이터 처리 불가
    *문법 이 산만 하고 대소 문자 구분 없 음
    CSS
    DTDDoucment Type Defined는 HTML 에 태그 가 있 고 태그 에 속성 이 있 습 니 다.
    schema(DTD 의 업그레이드 버 전,문법 업데이트,DTD 와 동등한 효과 달성)
    확장 불가 이유:DTD 확장 불가
    XML 파일 에 대한 해석 은?
    *어떤 프로 그래 밍 언어 든 XML 파일 에 대한 해석 은 두 가지 방식 을 포함한다.
    *DOM 해석
    *SAX 해석(org.xml.sax.helps DefaultHandler)
    DOM 해석
    *원리
    XML 파일 을 처리 하기 시작 할 때 모든 XML 파일 을 메모리 에 불 러 옵 니 다.
    메모리 에서 프로 그래 밍 언어 는 XML 파일 을 DOM 트 리 로 표시 합 니 다.이 트 리 는 하나 입 니 다.
    대상,그리고 우 리 는 이 나무의 임 의 노드 에 대해 첨삭 과 수정 작업 을 한다.왜냐하면
    이 나 무 는 모두 메모리 에 있어 서 과거의 노드 를 분석 하면 다시 분석 할 수 있 고 비교적 유연 하 다.
    *장점
    유연 하 다
    *단점
    XML 파일 이 크 면 메모리 가 넘 치지 않 더 라 도 메모리 가 넘 칠 수 있 습 니 다.
    메모리 도 많이 소모 되 고 메모리 가 줄 어 들 면 프로젝트 의 운행 효율 이 자연히 떨어진다.
    *어떤 경우 dom 해석 방식 을 선택 합 니까
    모든 요 소 를 유연 하 게 조작 하려 면 dom 으로 해석 하지만 파일 이 작 아야 합 니 다.
    SAX 해석
    *원리
    SAX 해석 은 이벤트 구동 형 을 기반 으로 하 는 해석 방식 입 니 다.그의 해석 은 전체 XML 파일 을 모두 처리 할 필요 가 없습니다.
    메모리 로 전송 합 니 다.분석 할 때 순서 가 있 습 니 다.XML 파일 에서 위 에서 아래로 순서대로 분석 합 니 다.
    탭 을 시작 할 때 까지 특정한 이벤트 가 발생 했 음 을 표시 합 니 다.이 때 특정한 프로그램 을 실행 하고 끝 났 습 니 다.
    탭 은 또 하나의 특정 이벤트 가 발생 했 음 을 표시 합 니 다.이 때 특정한 프로그램 을 실행 하여 해석 을 완료 합 니 다.
    *장점
    XML 파일 을 옮 길 필요 가 없 기 때문에 많은 메모 리 를 사용 하지 않 고 큰 파일 에 적합 합 니 다.
    *단점
    다시 시작 하지 않 는 한 과거의 노드 를 해석 할 수 없습니다.
    *어떤 경우 에 SAX 해석 방식 을 선택 합 니까
    큰 파일 은 SAX 해석 을 사용 하기에 적합 합 니 다.
    프로그래머 로 서 XML 파일 을 어떻게 해석 하고 XML 파일 을 해석 하 는 오픈 소스 항목 은 모두 그것 을 포함 합 니까?
    자바 XML 관련 오픈 소스 프로젝트 분석
    *DOM4j(Dom for Java)
    *JDOM
    .....
    JDK 자체 세트 는 W3C 규범 을 실현 하 는 것 이다.
    *org.w3c.com.*; DOM 기반 분석
    *org.xml.sax.*; SAX 기반 해석
    XML 파일 을 분석 하 는 효율 을 높이 기 위해 XPATH 도 포함 되 어 있 습 니 다.(정규 표현 식 과 유사 한 탭 일치 방식 으로 XML 파일 의 탭 을 빠르게 찾 을 수 있 습 니 다)
    XML 파일 에 대한 분석:
    DOM4j/JDOM/W3C+......Xpath
    JDK 자체 해석
    우선 src 디 렉 터 리 아래 xml 파일 을 만 듭 니 다.

    다음은 분석 과정 이다.
    
    /**
     *   JDK   "Dom  "XML  ( )
     */
    public class Text04 {
        public static void main(String[] args) throws Exception {
            //           
            DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
            //         
            DocumentBuilder builder=factory.newDocumentBuilder();
            //    XML  
            String path=Thread.currentThread().getContextClassLoader().getResource("db-config.xml").toURI().getPath();
            Document document =builder.parse(new File(path));//dom ,         dom 
            //     
            Node rootNode=document.getFirstChild();
            //        
            System.out.println(rootNode.getNodeName());
            //           
            Node driverNode=document.getElementsByTagName("driver").item(0);
            String driver =driverNode.getTextContent();
            System.out.println(driver);
        }
    }
    
    출력 결과

    dom4j 오픈 소스 프로젝트(dom 분석 기반)를 사용 하여 xml 파일 분석(읽 기)
    dom4j 오픈 소스 프로젝트 의 jar 패 키 지 를 디 렉 터 리 로 가 져 와 야 합 니 다.
    
    /**
     *   dom4j      XML  ( )
     *
     *  XML  
     *
     * DOM4j
     *
     *   dom  
     */
    public class Text01 {
        public static void main(String[] args) throws Exception {
            //       
            SAXReader reader=new SAXReader();//     SAXReader,      DOM     
            //      ,  dom 
            String path=Thread.currentThread().getContextClassLoader().getResource("db-config.xml").toURI().getPath();
            Document document= reader.read(new File(path));
            //     
            Element rootElement=document.getRootElement();
            //System.out.println(element.getName());
            //  driver  
            Element driverElement =rootElement.element("driver");
            //     
            String driver=driverElement.getText();
            //System.out.println(driver);
            //           
            driver=rootElement.elementText("driver");
            System.out.println(driver);
            System.out.println(rootElement.elementText("url"));
            System.out.println(rootElement.elementText("user"));
            System.out.println(rootElement.elementText("password"));
    
        }
    }
    
    출력 결과

    dom4j 오픈 소스 프로젝트(dom 분석 기반)를 사용 하여 xml 파일 분석(쓰기)
    
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.XMLWriter;
    
    import java.io.File;
    import java.io.FileWriter;
    
    /**
     *   dom4j      XML  ( )
     */
    public class Text02 {
        public static void main(String[] args) throws Exception {
            //      
            Document document= DocumentHelper.createDocument();
    
            //     
            Element studentInfoElt=document.addElement("    ");
    
            //                
            Element studentElt=studentInfoElt.addElement("  ");
    
            //       id  
            studentElt.addAttribute("id","110");
    
            //            
            Element nameElt=studentElt.addElement("  ");
    
            //        
            nameElt.setText("  ");
    
            //            
            Element sexElt=studentElt.addElement("  ");
    
            //        
            sexElt.setText(" ");
    
            //   
            OutputFormat format= OutputFormat.createPrettyPrint();
            format.setEncoding("utf-8");
    
            String path="students.xml";
            XMLWriter xmlWriter=new XMLWriter(new FileWriter(new File(path)),format);
    
            xmlWriter.write(document);
            xmlWriter.close();
    
    
        }
    }
    
    최종 생 성 된 xml 파일

    총결산
    이 글 은 여기까지 입 니 다.당신 에 게 도움 을 줄 수 있 기 를 바 랍 니 다.또한 당신 이 우리 의 더 많은 내용 에 관심 을 가 져 주 기 를 바 랍 니 다!

    좋은 웹페이지 즐겨찾기