반응형

가끔 일을 하다보면 HTML내에서 또 HTML파일을 생성해달라고 하는 (HTML파일 제작툴?) 요청사항이 올 때가 있습니다. 

 

그런 경우에 zxml이라는 라이브러리를 이용해서 구현이 가능합니다.

 

다운로드 : http://www.nczonline.net/downloads/

 

압축파일로 되어 있고, 압축을 풀면, sample 소스 등이 나오는데,

실제로 우리가 필요한 건 zxml.js 파일 하나 뿐입니다.

 

DOM방식으로 구현을 해야되서, 소스가 지저분해질 수 밖에 없더군요.

(다른 좋은 방법이 있으면 소개좀.. ㅠㅠ)

 

간단하게 예제코드를 통해 작성법을 소개하도록 하겠습니다.

 

아래 html 코드를 zxml을 통해 만들어 보도록 하겠습니다.


<head>
<title>test</title>
<meta http-equiv="Cache-Control" content="no-cache" />
</head>
// document 생성
var oXmlDom   = zXmlDom.createDocument();
 
//  
var htmlContainer  = oXmlDom.createElement("html");
 
// <head> </head>
var headContainer  = oXmlDom.createElement("head");

// <title>test</title>  
 var titleContainer  = oXmlDom.createElement("title");
// 태그 사이에 값을 넣어주는 역할
 titleContainer.appendChild(oXmlDom.createTextNode("test"));
 
// <meta />
 var metaContainer  = oXmlDom.createElement("meta");
// <meta http-equiv= /> : 속성 추가
 var attHttpEquiv = oXmlDom.createAttribute("http-equiv");
// 추가된 속성에 값 추가 <meta http-equiv="Cache-Control" />
 attHttpEquiv.value = "Cache-Control";
// meta태그에 위 속성 적용
 metaContainer.attributes.setNamedItem(attHttpEquiv);
// <meta http-equiv="Cache-Control" content="no-cache" /> 위와 동일
 var attContent  = oXmlDom.createAttribute("content");
 attContent.value = "no-cache";
 metaContainer.attributes.setNamedItem(attContent);
 
// <head> 안에 title과 meta를 추가
headContainer.appendChild(titleContainer);
headContainer.appendChild(metaContainer);
 
//  안에 head 추가
htmlContainer.appendChild(headContainer);
 
// document에 html 추가
oXmlDom.appendChild(htmlContainer);
 
// 리턴
return oXmlDom.xml;
반응형

'개발 > Front-End' 카테고리의 다른 글

[Jquery] $.ajax 사용 시 success callback에서 this 객체 사용하기  (0) 2016.06.10
[CSS] 텍스트 말줄임  (0) 2016.06.10
[HTML] favicon 추가  (0) 2016.06.10
[JavaScript] byte formatter  (0) 2016.06.10
[Jquery] Ajax Fileupload Option  (0) 2016.06.10
,
반응형