sitelink1 | http://comefeel.com/tt/comefeel/entry/St...C%EC%8B%B1 |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
extra_vars4 | |
extra_vars5 | |
extra_vars6 |
- 스트링을 받아서 로딩하는 방법,
- 파일을 로딩하는 방법.
먼저, IE를 살펴봅시다. IE에서 XML 로딩하려면, Microsoft.XMLDOM이라는 ActiveXObject를 사용하면 됩니다. 사용방법은 다음과 같습니다.
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlString);
or
xmlDoc.load(xmlFile);
위의 코드를 호출하고나면 xml(파일 또는 스트링)을 document의 object처럼 호출이 가능해집니다. async= false로 주는 이유는 xml파일 또는 스트링이 다 로딩된 후 다음 코드를 실행하기위해서 사용됩니다.
ActiveXObject를 사용하는 방법 외에도 CreateObject등을 사용하는 방법도 존재합니다.
Firefox에서는 document.implementation.createDocument을 통하여 XML로딩이 지원이 됩니다.
var xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.load(xmlFile);
createDocument의 첫번째 파라미터는 namespace를, 두번째 파라미터는 XML 파일에 있는 XML root element를 세번째 파라미터는 아직 구현이 되어 있지 않기 때문에 null을 넣어주면 됩니다.
※ 여기까지의 내용은 Mozilla의 Develper Center에서 본게 아니라 w3schools.com의 내용에서 가지고 왔습니다. MDC에서는 createDocument에 관한 내용 자체가 없더군요. (XUL section에서는 몇 개 있구요. 코드상에서 호출되는 것 뿐이지만)
그리고, Firefox에서 스트링으로 XML을 로딩하는 방법은 DOMParser를 이용하는 방법입니다. DOMParser는 표준이 아니기 때문에 모질라 플랫폼에서만 사용이 가능합니다.
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
PS.1 위의 결과로 xmlDoc을 생성한 값을 읽는 방법에도 여러가지가 있습니다만 다음의 방법으로 읽을 수 있습니다.
- 해당하는 xml 태그를 읽어온 다음에 tag.text(IE) 또는 tag.textContent(IE이외)를 사용하여 읽는 방법
- 해당하는 xml태그를 읽어온 다음에 tag로 감싸진 TextNode를 읽어들여서 해당하는 nodeValue로 읽는 방법
코드로 구현한다면 다음과 같이 될 것 같습니다.
// xmlDoc의 xml의 구성 <result>sample</result>
var resultTag = xmlDoc.getElementsByTagName("result")[0];
var resultText = (resultTag.text)? resultTag.text: resultTag.textContent;
or
var resultText = resultTag.childNodes[0].nodeValue;
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
77 | [펌] TAEYO.NET - JavaScript OOP 스트레칭 | 황제낙엽 | 2009.04.02 | 27 |
76 | Rhino scopes and contexts 에 대한 문서 | 황제낙엽 | 2008.07.18 | 27 |
75 | Fetch API (CORS 극복을 위한 노력) | 황제낙엽 | 2021.12.05 | 26 |
74 | 유용한 자바스크립트 예제 몇가지 (Tree 및...) | 황제낙엽 | 2005.10.20 | 26 |
73 | 링크모음 | 황제낙엽 | 2011.03.25 | 25 |
72 | YUI Logger(Yahoo) 를 동적으로 로드하는 북마크릿 | 황제낙엽 | 2010.10.03 | 25 |
71 | 생성자 체인과 상속 | 황제낙엽 | 2008.08.08 | 24 |
70 | Date객체 - 날짜구하기 | 황제낙엽 | 2008.02.19 | 24 |
69 | CORS(Cross-Origin Resource Sharing) - 2 | 황제낙엽 | 2017.03.07 | 24 |
68 | 연산자 this | 황제낙엽 | 2014.12.30 | 23 |
67 | URI 인코딩을 해야 하는 문자들 | 황제낙엽 | 2009.09.02 | 23 |
66 | [펌] 아사페릴의 사생활 - __proto__ 와 construct 와 prototype | 황제낙엽 | 2009.04.02 | 23 |
» | String xml 파싱 | 황제낙엽 | 2008.11.03 | 23 |
64 | XML+JS 연동 다중셀렉트박스 (1) - <font color="brown">(MS Explorer 전용)</brown> | 황제낙엽 | 2005.12.02 | 23 |
63 | 파이어폭스로 스크립트 디버깅하기 | 황제낙엽 | 2009.01.14 | 22 |
62 | 동적인 언어를 동적으로 호출하기 | 황제낙엽 | 2008.07.14 | 22 |
61 | [펌] TAEYO.NET - JavaScript OOP 코어객체와 prototype를 사용한 객체확장 | 황제낙엽 | 2009.04.02 | 21 |
60 | Object 와 Prototype | 황제낙엽 | 2008.08.08 | 21 |
59 | [펌]자바스크립트에서 객체 생성 방법 | 황제낙엽 | 2008.08.07 | 21 |
58 | 감추기, 보이기 화면 예제 | 황제낙엽 | 2008.04.14 | 21 |