정미나닷컴
[XPath] XPath를 이용한 xml 파싱 본문
* xml 파일
* 소스 파일 - javascript
* 소스 파일 - vbscript
<?xml version="1.0" encoding="utf-8" ?>
- <root>
- <item>
<no>인덱스</no>
- <title>
<![CDATA[ 타이틀 ]]>
</title>
- <link>
<![CDATA[ 링크주소 ]]>
</link>
</item>
</root>
- <root>
- <item>
<no>인덱스</no>
- <title>
<![CDATA[ 타이틀 ]]>
</title>
- <link>
<![CDATA[ 링크주소 ]]>
</link>
</item>
</root>
* 소스 파일 - javascript
<script type="text/javascript">
function loadXMLDoc(fname){
var xmlDoc;
//code for IE
if(window.ActiveXObject){
xmlDoc = new ActiveXObject("Msxml.DOMDocument");
}else{
xmlDoc = document.implementation.createDocument("","",null);
}
xmlDoc.async = false;
xmlDoc.load(fname);
return(xmlDoc);
}
var xml = loadXMLDoc("xpath_xml.jsp");
var path = "/root/item";
var title = "";
var link = "";
//code for IE
if(window.ActiveXObject){
xml.setProperty("SelectionLanguage", "XPath");
var nodes = xml.selectNodes(path);
for(var i=0; i<nodes.length; i++){
title = nodes[i].childNodes[1].childNodes[0].nodeValue;
link = nodes[i].childNodes[2].childNodes[0].nodeValue;
document.write("<a href='"+ link +"'>"+ title + "</a>");
}
}else{
var nodes = xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result = nodes.iterateNext();
while(result){
title = result.childNodes[3].childNodes[0].nodeValue;
link = result.childNodes[5].childNodes[0].nodeValue;
document.write("<a href='"+ link +"'>"+ title + "</a>");
result = nodes.iterateNext();
}
}
</script>
function loadXMLDoc(fname){
var xmlDoc;
//code for IE
if(window.ActiveXObject){
xmlDoc = new ActiveXObject("Msxml.DOMDocument");
}else{
xmlDoc = document.implementation.createDocument("","",null);
}
xmlDoc.async = false;
xmlDoc.load(fname);
return(xmlDoc);
}
var xml = loadXMLDoc("xpath_xml.jsp");
var path = "/root/item";
var title = "";
var link = "";
//code for IE
if(window.ActiveXObject){
xml.setProperty("SelectionLanguage", "XPath");
var nodes = xml.selectNodes(path);
for(var i=0; i<nodes.length; i++){
title = nodes[i].childNodes[1].childNodes[0].nodeValue;
link = nodes[i].childNodes[2].childNodes[0].nodeValue;
document.write("<a href='"+ link +"'>"+ title + "</a>");
}
}else{
var nodes = xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result = nodes.iterateNext();
while(result){
title = result.childNodes[3].childNodes[0].nodeValue;
link = result.childNodes[5].childNodes[0].nodeValue;
document.write("<a href='"+ link +"'>"+ title + "</a>");
result = nodes.iterateNext();
}
}
</script>
* 소스 파일 - vbscript
<script type="text/vbscript">
set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("xpath_xml.jsp")
set nodes=xmlDoc.selectNodes("/root/item")
//set nodes=xmlDoc.selectNodes("/root/item[@no='1']") no가 1인 노드 추출
//set nodes=xmlDoc.selectNodes("/root/item[@no,'1']") no에 1이 들어가는 노드 추출
Dim i
i=0
for each x in nodes
title = nodes(i).selectSingleNode("title").Text
link = nodes(i).selectSingleNode("link").Text
document.write("<a href='"+link+"'>"+ title + "</a>")
i=i+1
next
</script>
set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("xpath_xml.jsp")
set nodes=xmlDoc.selectNodes("/root/item")
//set nodes=xmlDoc.selectNodes("/root/item[@no='1']") no가 1인 노드 추출
//set nodes=xmlDoc.selectNodes("/root/item[@no,'1']") no에 1이 들어가는 노드 추출
Dim i
i=0
for each x in nodes
title = nodes(i).selectSingleNode("title").Text
link = nodes(i).selectSingleNode("link").Text
document.write("<a href='"+link+"'>"+ title + "</a>")
i=i+1
next
</script>
'IT' 카테고리의 다른 글
[jQuery] jQuery를 이용한 검색 자동완성 기능 (0) | 2010.09.02 |
---|---|
[jQuery] jQuery와 XPath를 연동한 xml 파싱 (0) | 2010.08.30 |
[jQuery] jQuery Form Plugin을 이용한 File Upload (0) | 2010.07.14 |
[jQuery] jQuery를 이용한 xml 파싱 (0) | 2010.07.02 |
[JavaScript] 자바스크립트 iframe 자동 Resizing 함수 (0) | 2010.05.13 |