XML DOM 모질라 문제입니다.

ctcquatre의 이미지

안녕하세요.

하루내내 이것때문에 힘들어 하다가 안돼겠다 싶어
질문드립니다. 좀 도움을 ^^;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
function test()
{
	var elRoot = document.getElementById("xmlTest").XMLDocument.documentElement;
	document.getElementById("divTest").innerHTML  = 
			elRoot.nodeName 
			+ "<BR>"
			+ elRoot.childNodes.item(0).nodeValue;

}
</script>

</HEAD>

<BODY >
<DIV id="divTest"></DIV> 

<XML id="xmlTest">
   <MEMBER>gfdgdfgfd</MEMBER>
</XML>

<script>test()</script>

</BODY>
</HTML>

위와 같은 문서가 있습니다.

이게 익스프롤러에서는 정상 작동합니다.
하지만 모질라계열에서는 작동하지 않습니다.

파폭 자바스크립트 콘솔을 띠워 오류를 확인해보니

var elRoot = document.getElementById("xmlTest").XMLDocument.documentElement;
이 문장에서

XMLDocument 프로퍼티가 없다고만 뜨네요.
XMLDocument 프로퍼티가 익스프롤러 전용인것 같아서
그런것같은데..

아.. 이거 어떻게 하죠. 모질라 사용하시는분들을 위해
꼭 표준에 맞게 개발해야 하는데 온통 문서들은 익스전용문서들이니. :cry:

좋은 하루되세요.

mmx900의 이미지

아는 건 없지만, 글을 읽다가 궁금해져서 한번 찾아 보았습니다.
참고할만할 기록이 몇개 있군요.
http://www.codecomments.com/JScript/message433951-1.html
http://www.faqts.com/knowledge_base/view.phtml/aid/34022/fid/616

결론인즉 html 4.0 내에서 xml 태그를 이용한 확장은 IE5+/WIN에서만 가능하다는 것인데, (HTML 4.0에는 xml이라는 태그가 없습니다.)
인용하신 위 코드의 문제는 Sarissa(http://sarissa.sourceforge.net/)를 이용해 간단히 해결을 보았습니다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script src="sarissa/sarissa.js"></script>
<script>
function test()
{
   var domDoc = Sarissa.getDomDocument();
   domDoc.async = false;
   domDoc.loadXML(document.getElementById("xmlTest").innerHTML);
   
   var elRoot = domDoc.documentElement;
   document.getElementById("divTest").innerHTML  =
         elRoot.nodeName
         + "<BR>"
         + elRoot.childNodes.item(0).nodeValue;

}
</script>

</HEAD>

<BODY >
<DIV id="divTest"></DIV>
<XML id="xmlTest">
   <MEMBER>gfdgdfgfd</MEMBER>
</XML>

<script>test()</script>

</BODY>
</HTML>

아, 물론 sarissa를 먼저 설치해야 예제가 동작합니다 :-)
http://trash.chregu.tv/jsxml/ 여기는 Sarissa를 이해하기 좋은 간단한 예제구요.
그리고 firefox는 모르는 코드는 내용을 그냥 출력해버리기 때문에, 최종 출력은 다음과 같습니다.

IE :

member
gfdgdfgfd

FF :

member
gfdgdfgfd
gfdgdfgfd

이를 해결하려면 소스의 xml 태그를

<div id="xmlTest" style="display:none;">
   <MEMBER>gfdgdfgfd</MEMBER>
</div>

처럼 바꾸어 주면 되지요.

Setzer Gabbiani

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.