XML 파싱 부분이 허접이라 하지만 개념은 이렇게 되는게 맞지 않을까 합니다.
XSLT를 사용하려다. 시간상 node접근 하여 text로 rss를 piclens에 맞는 xml로 만들었습니다.
첨부 파일을 실행 하려면 다운을 받아 하시든지 또는
열기하셔서 실행 하면 됩니다. (이경우는 http://*.google.com 과 http://*.naver.net 을 신뢰할 수 있는 사이트 등록을 하여야 합니다. 안하면 xmlhttprequestt 에러 xml load에러 발생합니다. -> 이렇게 하여도 xml load 시 문제가 있네요 근본적으로 아래 URL을 참고하여 crossdomain 을 설정하면됩니다.)
[crossdomain 관련 내용 참고]picasaweb api도 자세히 나와 있습니다.
http://code.google.com/apis/picasaweb/reference.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> TEST </title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<link rel="alternate" href="photos.rss" type="application/rss+xml" title="" id="gallery" />
<script type="text/javascript" src="http://lite.piclens.com/current/piclens.js"></script>
<script type="text/javascript" src="./lytebox/lytebox.js"></script>
<script>
function getPiclensXmlFeed(xmlFile) {
var xmlDoc;
if (window.ActiveXObject) { // IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load(xmlFile);
} else { // Mozilla, Firefox, Opera, etc.
var parser = new DOMParser();
xmlDoc = parser.parseFromString(PicLensLite.THE_FEED, "text/xml");
}
var i,j,k;
var hiddenURLs = "";
var tempText = '<\?xml version="1.0" encoding="UTF-8" standalone="yes"\?> ';
tempText += '\n <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss"> ';
tempText += '\n <channel> ';
tempText += '\n <title>'+xmlDoc.getElementsByTagName('title')[0].childNodes[0].nodeValue+'\n </title> ';
tempText += '\n <link>'+xmlDoc.getElementsByTagName('link')[0].childNodes[0].nodeValue+'\n </link> ';
tempText += '\n <description>'+xmlDoc.getElementsByTagName('description')[0].childNodes[0].nodeValue+'\n </description> ';
var xmlElements = xmlDoc.getElementsByTagName('item');
for (i = 0; i < xmlElements.length; i++) {
tempText += '\n <item> ';
var oNodeList = xmlElements[i].childNodes;
for (j = 0; j < oNodeList.length; j++) {
if (oNodeList[j].nodeName == "title") { // what about the namespace?
var title = oNodeList[j].childNodes.item(0).nodeValue;
tempText += '\n <title>'+title+'\n </title> ';
}
if (oNodeList[j].nodeName == "link") { // what about the namespace?
var title = oNodeList[j].childNodes.item(0).nodeValue;
tempText += '\n <link>'+title+'\n </link> ';
}
if (oNodeList[j].nodeName == "guid") { // what about the namespace?
var title = oNodeList[j].childNodes.item(0).nodeValue;
tempText += '\n <guid>'+title+'\n </guid> ';
}
var tCount=0;
if (oNodeList[j].nodeName == "media:group") { // what about the namespace?
var mNodeList = oNodeList[j].childNodes;
for (k = 0; k < mNodeList.length; k++) {
/*
if (mNodeList[k].nodeName == "media:content") { // what about the namespace?
var url = mNodeList[k].getAttribute("url");
tempText += '\n <media:content url="'+url+'" /> ';
}
*/
if (mNodeList[k].nodeName == "media:thumbnail") { // what about the namespace?
tCount += 1;
if (tCount <= 2) {
var url = mNodeList[k].getAttribute("url");
tempText += '\n <media:thumbnail url="'+url+'" /> ';
} else { // content 로 처리
var url = mNodeList[k].getAttribute("url");
tempText += '\n <media:content url="'+url+'" /> ';
}
}
// alert('i=='+i+'\nj=='+j+'\nk=='+k+'\nname='+mNodeList[k].nodeName+'\nVALUE='+url);
} // k node
}
} // j node
tempText += '\n </item> ';
} // i node
tempText += '\n </channel> ';
tempText += '\n </rss> ';
return tempText;
}
</script>
<script>
function PicLens() {
//rssurl = 'http://picasaweb.google.com/data/feed/base/user/outofwrd/albumid/5018407575414284625?kind=photo&alt=rss';
var xmlText = getPiclensXmlFeed(picasarss.value);
//var xmlText = getPiclensXmlFeed("http://picasaweb.google.com/data/feed/base/user/outofwrd/albumid/5018407575414284625?kind=photo&alt=rss");
txt1.value = xmlText;
PicLensLite.start({feedData:xmlText});
//PicLensLite.start({feedUrl:'photos.rss'});
}
</script>
</head>
<body>
<input type="text" name="picasarss" id="picasarss" size=120
value="http://picasaweb.google.com/data/feed/base/user/outofwrd/albumid/5018407575414284625?kind=photo&alt=rss">
<input type="button" name="TEST" value="이미지조회" OnClick="PicLens();">
<textarea id=txt1 cols=140 rows=40></textarea>
</body>
</html>
댓글 없음:
댓글 쓰기