크로스 브 라 우 저 분석 XML DOM

5537 단어
대부분의 브 라 우 저 에는 XML 을 읽 고 조작 할 수 있 는 XML 해상도 가 내장 되 어 있다.
해상도 기 는 XML 을 자 바스 크 립 트 가 접근 할 수 있 는 대상 으로 변환 합 니 다.
실례
W3 School 이 제공 하 는 인 스 턴 스 는 브 라 우 저 와 플랫폼 에 독립 되 어 있 습 니 다.이 인 스 턴 스 는 모든 현대 브 라 우 저 에서 실 행 될 수 있 습 니 다.
XML 파일 불 러 오기 및 분석
XML 문자열 불 러 오기 및 해석
분석 XML
모든 현대 브 라 우 저 에는 XML 을 읽 고 조작 하 는 XML 해상도 가 내장 되 어 있 습 니 다.
해상도 기 는 XML 을 메모리 에 읽 고 자 바스 크 립 트 에 접근 할 수 있 는 XML DOM 대상 으로 변환 합 니 다.
마이크로소프트 의 XML 해상도 기 는 다른 브 라 우 저의 해상도 기와 차이 가 있다.마이크로소프트 해상도 기 는 XML 파일 과 XML 문자열 (텍스트) 을 불 러 오 는 것 을 지원 하고, 다른 브 라 우 저 는 단독 해상도 기 를 사용 합 니 다.그러나 모든 해상도 기 는 XML 트 리, 접근, 삽입 및 노드 를 옮 겨 다 니 는 함 수 를 포함 하고 있 습 니 다.
이 튜 토리 얼 에 서 는 IE 및 다른 브 라 우 저 에서 실행 할 수 있 는 스 크 립 트 를 만 드 는 방법 을 설명 합 니 다.
마이크로소프트 XML 해상도 로 XML 불 러 오기
마이크로소프트 XML 해상도 기 는 인터넷 익스플로러 5 및 더 높 은 버 전에 서 만 들 어 졌 다.
다음 자 바스 크 립 트 세 션 은 XML 문서 ("books. xml") 를 해상도 기 에 불 러 옵 니 다.
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("books.xml");

코드 설명:
  • 첫 줄 에 빈 마이크로소프트 XML 문서 대상 만 들 기
  • 두 번 째 줄 은 비동기 로 딩 을 닫 습 니 다. 문서 가 완전히 불 러 오기 전에 해석 기 가 스 크 립 트 를 계속 실행 하지 않도록 확보 할 수 있 습 니 다
  • 세 번 째 줄 은 해석 기 에 'books. xml' 이라는 문 서 를 불 러 오 라 고 알려 줍 니 다
  • 다음 자 바스 크 립 트 세 션 은 txt 라 는 문자열 을 해석 기 에 불 러 옵 니 다.
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.loadXML(txt);

    설명: loadXML () 방법 은 문자열 (텍스트) 을 불 러 오 는 데 사용 되 며, load () 는 파일 을 불 러 오 는 데 사 용 됩 니 다.
    Firefox 및 기타 브 라 우 저 에서 XML 해상도
    다음 자 바스 크 립 트 세 션 은 XML 문서 ("books. xml") 를 해상도 기 에 불 러 옵 니 다.
    xmlDoc=document.implementation.createDocument("","",null);
    xmlDoc.async="false";
    xmlDoc.load("books.xml");

    코드 설명:
  • 첫 줄 에 빈 XML 문서 대상 만 들 기
  • 두 번 째 줄 은 비동기 로 딩 을 닫 습 니 다. 문서 가 완전히 불 러 오기 전에 해석 기 가 스 크 립 트 를 계속 실행 하지 않도록 확보 할 수 있 습 니 다
  • 세 번 째 줄 은 해석 기 에 'books. xml' 이라는 문 서 를 불 러 오 라 고 알려 줍 니 다
  • 다음 자 바스 크 립 트 세 션 은 txt 라 는 문자열 을 해석 기 에 불 러 옵 니 다.
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(txt,"text/xml");

    코드 설명:
  • 첫 줄 에 빈 XML 문서 대상 만 들 기
  • 두 번 째 줄 은 해상도 기 에 txt 라 는 문자열 을 불 러 오 라 고 알려 줍 니 다
  • 설명: Internet Explorer 는 loadXML () 방법 으로 XML 문자열 을 해석 하고 다른 브 라 우 저 는 DOMParser 대상 을 사용 합 니 다.
    XML 파일 분석 - 브 라 우 저 를 뛰 어 넘 는 인 스 턴 스
    다음 예 는 XML 문서 ("books. xml") 를 XML 해상도 기 에 불 러 옵 니 다.
    <html>
    <body>
    <script type="text/javascript">
    try //Internet Explorer
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      }
    catch(e)
      {
      try //Firefox, Mozilla, Opera, etc.
        {
        xmlDoc=document.implementation.createDocument("","",null);
        }
      catch(e) {alert(e.message)}
      }
    try 
      {
      xmlDoc.async=false;
      xmlDoc.load("books.xml");
      document.write("xmlDoc is loaded, ready for use");
      }
    catch(e) {alert(e.message)}
    </script>
    </body>
    </html>

    TIY
    Error: Access Across Domains
    보안 상의 이유 로 현대 브 라 우 저 는 도 메 인 을 뛰 어 넘 는 접근 을 허용 하지 않 습 니 다.
    웹 페이지 와 불 러 오 려 는 XML 파일 이 같은 서버 에 있어 야 한 다 는 뜻 이다.
    W3 School 의 인 스 턴 스 가 열 린 XML 파일 은 W3 School 의 도 메 인 에 있 습 니 다.
    만약 당신 이 자신의 홈 페이지 에 위의 예 를 사용 하려 고 한다 면, 반드시 XML 파일 을 자신의 서버 에 올 려 야 합 니 다.그렇지 않 으 면 xmlDoc. load () 에 오류 가 발생 합 니 다. "Access is denied".
    XML 문자열 분석 - 브 라 우 저 를 뛰 어 넘 는 인 스 턴 스
    다음 코드 는 XML 문자열 을 불 러 오고 해석 합 니 다.
    <html>
    <body>
    <script type="text/javascript">
    text="<bookstore>"
    text=text+"<book>";
    text=text+"<title>Harry Potter</title>";
    text=text+"<author>J K. Rowling</author>";
    text=text+"<year>2005</year>";
    text=text+"</book>";
    text=text+"</bookstore>";
    
    try //Internet Explorer
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async="false";
      xmlDoc.loadXML(text);
      }
    catch(e)
      {
      try //Firefox, Mozilla, Opera, etc.
        {
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(text,"text/xml");
        }
      catch(e) {alert(e.message)}
      }
    document.write("xmlDoc is loaded, ready for use");
    </script>
    </body>
    </html>

    TIY
    설명: Internet Explorer 는 loadXML () 방법 으로 XML 문자열 을 해석 하고 다른 브 라 우 저 는 DOMParser 대상 을 사용 합 니 다.
    XML 문 서 를 불 러 올 코드 를 단독 함수 에 저장 할 수 있 습 니 다.
    실례
    XML 문서 불 러 오기
    함수 로 XML 문 서 를 불 러 옵 니 다.
    문 서 를 불 러 와 서 코드 를 반복 하지 않도록 코드 를 단독 자바 스 크 립 트 파일 에 저장 할 수 있 습 니 다.
    function loadXMLDoc(dname) 
    {
    try //Internet Explorer
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      }
    catch(e)
      {
      try //Firefox, Mozilla, Opera, etc.
        {
        xmlDoc=document.implementation.createDocument("","",null);
        }
      catch(e) {alert(e.message)}
      }
    try 
      {
      xmlDoc.async=false;
      xmlDoc.load(dname);
      return(xmlDoc);
      }
    catch(e) {alert(e.message)}
    return(null);
    }

    좋은 웹페이지 즐겨찾기