๋ชฉ์ฐจ
1. 2024.2.1(๊ธ)
2. RSS๋?
RSS(Really Simple Syndication, Rich Site Summary)๋ ๋ธ๋ก๊ทธ์ฒ๋ผ ์ปจํ ์ธ ์ ๋ฐ์ดํธ๊ฐ ์์ฃผ ์ผ์ด๋๋ ์น์ฌ์ดํธ์์, ์ ๋ฐ์ดํธ๋ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ๊ตฌ๋ ์๋ค์๊ฒ ์ ๊ณตํ๊ธฐ ์ํด XML์ ๊ธฐ์ด๋ก ๋ง๋ค์ด์ง ๋ฐ์ดํฐ ํ์
- ๊ธฐ์์ฒญ ๋ ์จ๋๋ฆฌ
- ๊ธฐ์์ฒญ ๋ ์จ๋๋ฆฌ
https://www.weather.go.kr/w/pop/rss-guide.do
-JTBC
https://news.jtbc.co.kr/Etc/RssService.aspx
F_XmlApp05: RSS ๊ธฐ์์ฒญ ๋ ์จ(๋ก์ปฌ)
ใดrss.xml
... ๊ธฐ์์ฒญ ๋ ์จ๋๋ฆฌ rss http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108 ...
ใด/XmlApp05/src/com/test
ใดใดXMLDOM.java
package com.test;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class XMLDOM
{
public static String getText(Element parent, String tagName)
{
String result = "";
// ๋์ ํ๊ทธ(tagName) ๊ฐ์ฒด์ ์ฒซ ๋ฒ์งธ ์์ ๋
ธ๋ ์ป์ด์ค๊ธฐ
Node node = parent.getElementsByTagName(tagName).item(0);
Element element = (Element)node;
// ๋์ ์๋ฆฌ๋จผํธ(element)์ ์์ ๋
ธ๋(ํ
์คํธ ๋
ธ๋)์ ๊ฐ ์ป์ด์ค๊ธฐ
result = element.getChildNodes().item(0).getNodeValue();
return result ;
}
}
ใดใดXmlDomTest06.java
/*================================================
XmlDomTest06.java
- ์ฝ์ ๊ธฐ๋ฐ ์๋ฐ ํ๋ก๊ทธ๋จ
- XML DOM ํ์ฉ → ๋ก์ปฌ(local) XML ์ฝ์ด๋ด๊ธฐ
(rss.xml)
โป ๊ธฐ์์ฒญ ๋ ์จ๋๋ฆฌ๋ก๋ถํฐ ์ป์ด๋ธ ๋ฐ์ดํฐ
================================================*/
package com.test;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlDomTest06
{
public static void main(String[] args)
{
try
{
// 1. xml ํ์ผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
String url = "rss.xml";
Document xmlObj = builder.parse(url);
// 2. ๋ฃจํธ ์๋ฆฌ๋จผํธ ์ ๊ทผ
Element root = xmlObj.getDocumentElement();
// 3-1. ํ์ดํ ์ถ์ถํ๊ธฐ
Node itemNode = root.getElementsByTagName("item").item(0);
Element itemElement = (Element)itemNode;
System.out.printf("%s%n%n", XMLDOM.getText(itemElement, "title"));
//--==>> ์ ๊ตญ ์ก์ ์ค๊ธฐ์๋ณด - 2024๋
02์ 02์ผ (๊ธ)์์ผ 06:00 ๋ฐํ
// 3-2. ๊ธฐ์์ ๋ง ์ถ์ถํ๊ธฐ(wf)
Node wfNode = root.getElementsByTagName("wf").item(0);
Element wfElement = (Element)wfNode;
System.out.println("[๊ธฐ์์ ๋ง]------------------------------------------");
System.out.printf("%s%n%n", wfElement.getTextContent().replaceAll("<br />", "\n"));
// 3-3. ๋์๋ณ ๊ธฐ์ ์๋ณด ์ถ์ถํ๊ธฐ(location>city)
System.out.println("[์ก์๋ ์จ]------------------------------------------");
NodeList locationNodeList = root.getElementsByTagName("location");
for (int i = 0; i < locationNodeList.getLength(); i++)
{
Node locationNode = locationNodeList.item(i);
Element locationElement = (Element)locationNode;
//<mode>A02</mode>
//<tmEf>2024-02-05 00:00</tmEf> // ๋ ์ง ์๊ฐ
//<wf>ํ๋ฆฌ๊ณ ๋น/๋</wf> // ๋ ์จ ์๋ณด
//<tmn>2</tmn> // ์ต์ ์จ๋
//<tmx>3</tmx> // ์ต๊ณ ์จ๋
//<reliability />
//<rnSt>70</rnSt> // ๊ฐ์ ํ๋ฅ
System.out.printf("๋์: %s%n", XMLDOM.getText(locationElement, "city"));
NodeList dataNodeList = locationElement.getElementsByTagName("data");
for (int j = 0; j < dataNodeList.getLength(); j++)
{
Node dataNode = dataNodeList.item(j);
Element dataElement = (Element)dataNode;
System.out.printf(" %s / %s / %s°C ~ %s°C / %s%%\n" //** %%: % ๋ฅผ ์ฐ์ด์ฃผ๊ธฐ ์ํด์ %%๋๊ฐ ์์ฑ
, XMLDOM.getText(dataElement, "tmEf")
, XMLDOM.getText(dataElement, "wf")
, XMLDOM.getText(dataElement, "tmn")
, XMLDOM.getText(dataElement, "tmx")
, XMLDOM.getText(dataElement, "rnSt")
);
// System.out.printf("๋ ์ง ์๊ฐ: %s%n", XMLDOM.getText(dataElement, "tmEf"));
// System.out.printf("๋ ์จ ์๋ณด: %s%n", XMLDOM.getText(dataElement, "wf"));
// System.out.printf("์ต๊ณ ์จ๋: %s%n", XMLDOM.getText(dataElement, "tmn"));
// System.out.printf("์ต์ ์จ๋: %s%n", XMLDOM.getText(dataElement, "tmx"));
// System.out.printf("๊ฐ์ ํ๋ฅ : %s%n", XMLDOM.getText(dataElement, "rnSt"));
}
System.out.println("-------------------------------------------------------");
}
} catch (Exception e)
{
System.out.println(e.toString());
}
}
}
F_XmlApp06: ๊ธฐ์์ฒญ ๋ ์จ(์๊ฒฉ)
ใด/XmlApp06/src/com/test
ใดใดXMLDOM.java
... XmlApp05 ์ฐธ์กฐ ...
ใดใดXmlDomTest07.java
/*================================================
XmlDomTest07.java
- ์ฝ์ ๊ธฐ๋ฐ ์๋ฐ ํ๋ก๊ทธ๋จ
- XML DOM ํ์ฉ → ์๊ฒฉ(local) XML ์ฝ์ด๋ด๊ธฐ
(http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108)
โป ๊ธฐ์์ฒญ ๋ ์จ๋๋ฆฌ๋ก๋ถํฐ ์ป์ด๋ธ ๋ฐ์ดํฐ
================================================*/
/*
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108 ์ ๊ตญ
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109 ์์ธ·๊ฒฝ๊ธฐ๋
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=105 ๊ฐ์๋
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=131 ์ถฉ์ฒญ๋ถ๋
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=133 ์ถฉ์ฒญ๋จ๋
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=146 ์ ๋ผ๋ถ๋
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=156 ์ ๋ผ๋จ๋
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=143 ๊ฒฝ์๋ถ๋
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=159 ๊ฒฝ์๋จ๋
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=184 ์ ์ฃผํน๋ณ์์น๋
*/
package com.test;
import java.io.InputStream;
import java.net.URL;
import java.util.Scanner;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import com.oracle.webservices.internal.api.databinding.Databinding.Builder;
public class XmlDomTest07
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String[] stnId = {"108", "109", "105", "131", "133", "146", "156", "143", "159", "184"};
do
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document xmlObj = null;
// Local XML ํ์ผ์ธ ๊ฒฝ์ฐ
/*
String url = "rss.xml";
xmlObj = builder.parse(url);
*/
// Remote XML ํ์ผ์ธ ๊ฒฝ์ฐ...
// ์๋ด → ์ธ๋ถ์ ์
๋ ฅ๊ฐ ์ฒ๋ฆฌ
System.out.println("โ โ โ ๊ธฐ์์ฒญ ์ก์ ์ค๊ธฐ ์๋ณด โ โ โ ");
System.out.println("-----------------------------------");
System.out.println("1. ์ ๊ตญ");
System.out.println("2. ์์ธ·๊ฒฝ๊ธฐ๋");
System.out.println("3. ๊ฐ์๋");
System.out.println("4. ์ถฉ์ฒญ๋ถ๋");
System.out.println("5. ์ถฉ์ฒญ๋จ๋");
System.out.println("6. ์ ๋ผ๋ถ๋");
System.out.println("7. ์ ๋ผ๋จ๋");
System.out.println("8. ๊ฒฝ์๋ถ๋");
System.out.println("9. ๊ฒฝ์๋จ๋");
System.out.println("10. ์ ์ฃผํน๋ณ์์น๋");
System.out.println("-----------------------------------");
System.out.print(">> ์ง์ญ ์ ํ(์ข
๋ฃ 0): ");
String m = sc.next();
if(m.equals("0"))
break;
//System.out.println("๊ณ์ ์งํ");
String str = String.format("http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=%s"
, stnId[Integer.parseInt(m)-1]); //*** -1: ์ธ๋ฑ์ค๋ 0 ๋ถํฐ์ฌ์
// ํ์ธ
//System.out.println("์์ฒญ ์ฃผ์: "+str);
// ใ3. ๊ฐ์๋ใ ์ ํ ์
// ์์ฒญ ์ฃผ์: http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=105
// ใ7. ์ ๋ผ๋จ๋ใ ์ ํ ์
// ์์ฒญ ์ฃผ์: http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=156
// ๋ฌธ์์ด๋ก ๊ตฌ์ฑํ ์์ฒญ ์ฃผ์๋ฅผ URL ๊ฐ์ฒด ๊ตฌ์ฑ → ์ ๋๊ฒฝ๋ก ์ง์ ๋ฐฉ์
URL url = new URL(str);
//*** ๊ทธ๋ฅ ๋ฌธ์์ด์ด๋ฉด
// ํด๋น ์ฃผ์์ ๋ด์ฉ์ ์คํธ๋ฆผ์ผ๋ก ์ฝ์ด์ค๋๋ก
// ๊ตฌ์ฑํ URL๋ก ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ ๋ด์ฉ ์ฝ์ด์ค๊ธฐ → ์คํธ๋ฆผ(stream)
InputSource is = new InputSource(url.openStream());
xmlObj = builder.parse(is);
//-------------------------------------
// ๋ฃจํธ ์๋ฆฌ๋จผํธ ์ ๊ทผ
Element root = xmlObj.getDocumentElement();
// ํ์ดํ ์ถ์ถํ๊ธฐ
Node itemNode = root.getElementsByTagName("item").item(0);
Element itemElement = (Element)itemNode;
System.out.printf("%s%n%n", XMLDOM.getText(itemElement, "title"));
// ๊ธฐ์์ ๋ง ์ถ์ถํ๊ธฐ(wf)
System.out.println("[๊ธฐ์ ์ ๋ง]----------------------------------\n");
Node wfNode = root.getElementsByTagName("wf").item(0);
Element wfElement = (Element)wfNode;
System.out.printf("%s\n", wfElement.getTextContent().replaceAll("<br />", "\n"));
// ๋์๋ณ ๊ธฐ์ ์๋ณด ์ถ์ถํ๊ธฐ(location>city)
System.out.println("[์ก์ ๋ ์จ]----------------------------------\n");
NodeList loactionNodeList = root.getElementsByTagName("location");
for (int i = 0; i < loactionNodeList.getLength(); i++)
{
Node locationNode = loactionNodeList.item(i);
Element locationElement = (Element)locationNode;
// ๋์ ...
// ๋ ์ง ์๊ฐ(tmEf) / ๋ ์จ ์๋ณด(wf) / ์ต์ ์จ๋(tmn) ~ ์ต๊ณ ์จ๋(tmx) / ๊ฐ์ํ๋ฅ (rnSt)
System.out.printf("%s)--------------%n", XMLDOM.getText(locationElement, "city"));
NodeList dataNodeList = locationElement.getElementsByTagName("data");
for (int j = 0; j < dataNodeList.getLength(); j++)
{
Node dataNode = dataNodeList.item(j);
Element dataElement = (Element)dataNode;
System.out.printf("%s / %s / %sโ ~ %sโ / %s%n"
, XMLDOM.getText(dataElement, "tmEf")
, XMLDOM.getText(dataElement, "wf")
, XMLDOM.getText(dataElement, "tmn")
, XMLDOM.getText(dataElement, "tmx")
, XMLDOM.getText(dataElement, "rnSt"));
// โ: ใน ํน์๋ฌธ์
}
}
System.out.println("\n\n");
} catch (Exception e)
{
System.out.println(e.toString());
}
} while (true);
}
}
F_XmlApp07: ์ธ๋ก ์ฌ ๋ด์ค(์๊ฒฉ)
ใด/XmlApp07/src/com/test
ใดใดXMLDOM.java
... XmlApp05 ์ฐธ์กฐ ...
ใดใดXmlDomTest08.java
/*================================================
XmlDomTest08.java
- ์ฝ์ ๊ธฐ๋ฐ ์๋ฐ ํ๋ก๊ทธ๋จ
- XML DOM ํ์ฉ → ์๊ฒฉ(local) XML ์ฝ์ด๋ด๊ธฐ
(https://fs.jtbc.co.kr/RSS/newsflash.xml)
โป ์ธ๋ก ์ฌ ๋ด์ค๋ก๋ถํฐ ์ป์ด๋ธ ๋ฐ์ดํฐ
================================================*/
/*
title> JTBC news
link> https://fs.jtbc.co.kr/RSS/newsflash.xml
description> ์๋ณด RSS
copyright> Copyright(C) JTBC All rights reserved.
์ฃผ์ ๊ธฐ์ฌ ------------------------------------------------
title> [๋ ์จ] ์ ๊ตญ ๋์ฒด๋ก ํ๋ฆผ…๊ณณ๊ณณ ๋ฏธ์ธ๋จผ์ง '๋์จ'
description> ์ค๋(2์ผ)์ ์ ๊ตญ์ด ๋์ฒด๋ก ํ๋ฆฐ ๊ฐ์ด๋ฐ, ์ผ๋ถ ์ง์ญ์ ๋ฏธ์ธ๋จผ์ง๊ฐ '๋์จ' ์์ค์ ๋ณด์ด๊ฒ ์ต๋๋ค.๋ฎ ์ต๊ณ ๊ธฐ์จ์ 3๋์์ 10๋๋ก ํฌ๊ทผํ ๋ ์จ๊ฐ ์์๋ฉ๋๋ค.
link> https://news.jtbc.co.kr/article/article.aspx?news_id=NB12163616
title> ์ธ์๋น ๊ธ๋ฑ์ ์ธ๊ธฐ '์ฅ'…๋๋์นํจ '์์์ฑ๋ถ' ๊ผญ ํ์ธํ์ธ์
link> https://news.jtbc.co.kr/article/article.aspx?news_id=NB12163595
description> [์ต์ปค]ํ๋์ฐจ์ด์ฆ ์นํจ๊ฐ์ด 2๋ง ์์ ํ์ฉ ๋๋ ์์ฆ, ๋์ฒดํ์ผ๋ก ๋งํธ์ ๋๋ ์นํจ์ ์ฐพ๋ ๊ฒฝ์ฐ๊ฐ ๋์ด๋ฌ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ์ดํด๋ณด์
์ผ ํฉ๋๋ค. ์ธ๊ธฐ ์ ํ๋ค ๊ฐ์ด๋ฐ ํฌํ์ง๋ฐฉ๊ณผ ๋ํธ๋ฅจ์ด ๊ณผํ๊ฒ ๋ค์ด ์๊ฑฐ๋, ์์ฐ
*/
package com.test;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import jdk.internal.org.xml.sax.InputSource;
public class XmlDomTest08
{
public static void main(String[] args)
{
/* 1. ์๊ฒฉ XML ์ ๋ณด๋ฅผ ์์ฒญํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋
→ XML DOM ๊ตฌ์ฑ
· DB ํ์ฉ
· DBF ํ์ฉ
· XML ๋ก๋ฉ
2. ๋ฃจํธ ์๋ฆฌ๋จผํธ ์ ๊ทผ
3. ํน์ ํ์ ์๋ฆฌ๋จผํธ ์ ๊ทผ
4. ํ
์คํธ ๋
ธ๋ ์ ๊ทผ
→ ํ์ํ ๋ฐ์ดํฐ ํ๋
5. ๊ฒฐ๊ณผ ์ฒ๋ฆฌ(์ถ๋ ฅ)
*/
try
{
/* โป DOM(Document Object Model)
- XML ์ด๋ HTML Document(๋ฌธ์)๋ฅผ ์์ฉํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๊ธฐ ์ํ API ๊ท๊ฒฉ
- DOM์ Document(๋ฌธ์)์ ๊ฐ ๋ถ๋ถ๋ค์ ๊ฐ์ฒด(Object)๋ก ํํํ API
โป DOM(Document Object Model) ํ์(Parser)
- XML ๋ฌธ์๋ฅผ ์ฝ๊ณ , ํด์ํ ํ,
ํด์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ DOM ๊ฐ์ฒด ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์์ฑ์ํค๋ ํ์(Parser)
- ์ํ๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋๋ก ํด์ฃผ์ด
๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์, ์์ , ์ญ์ ํ ์ ์๋๋ก ์ง์
โป ์ฃผ๋ก ์ฌ์ฉ๋๋ DOM(Document Object Model) ์ธํฐํ์ด์ค
- Node
: ๋ชจ๋ ๊ฐ์ฒด์ ๋ถ๋ชจ ์ธํฐํ์ด์ค๋ก์ ๊ณตํต์ ์ผ๋ก ๊ธฐ๋ฅํ๋ ํจ์๋ฅผ ๊ฐ์ง๋ค.
- NodeList (NODESET)
: ๋
ธ๋๋ค์ ๋ฆฌ์คํธ๋ก ๋ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ฝ๋๋ก(์ผ๊ด ์ฒ๋ฆฌ) ํ ๊ฒ
- Document
: DOM(Doucment Object Model) ํธ๋ฆฌ ๊ตฌ์กฐ์ ์ต์์ ๋
ธ๋๋ก XML ๋ฌธ์ ์์ฒด๋ฅผ ์๋ฏธํ๋ค.
- Element
: XML ์ ์๋ฆฌ๋จผํธ์ ํด๋นํ๋ ๊ฐ์ฒด ์ ํ
- Attr
: XML ์ ๋ฐ์ดํฐ์ ํด๋นํ๋ ๊ฐ์ฒด ์ ํ
- CharacterData
: XML ์ ๋ฐ์ดํฐ์ ํด๋นํ๋ ๊ฐ์ฒด ์ ํ
- Text
: ๋ฌธ์ ๋ฐ์ดํฐ(๋ด์ฉ)์ ํด๋นํ๋ ๊ฐ์ฒด ์ ํ
*/
// 1.
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//-- ใDocumentBuilderFactoryใ
// DocumentBuilder(DOM Parser)๋ฅผ ์์ฑํ ์ ์๋๋ก ํด์ฃผ๋ Factory ํด๋์ค(๊ฐ์ฒด)
DocumentBuilder builder = factory.newDocumentBuilder();
//-- ใDocumentBuilderใ
// DOM Parser ๊ฐ์ฒด์ ํด๋์ค
Document xmlObj = null;
String str="https://fs.jtbc.co.kr/RSS/newsflash.xml";
URL url = new URL(str);
InputSource is = new InputSource(url.openStream());
xmlObj = builder.parse(str);
// ๋ฃจํธ ์๋ฆฌ๋จผํธ ์ ๊ทผ
// 2.
Element root = xmlObj.getDocumentElement();
//ํ์ธ
//System.out.println(root.getNodeName());
//--==>> rss
// 3.
Node channelNode = root.getElementsByTagName("channel").item(0);
Element channelElement = (Element)channelNode;
Node descriptionNode = root.getElementsByTagName("description").item(0);
Element descriptionElement = (Element)descriptionNode;
// title> JTBC news
// link> https://fs.jtbc.co.kr/RSS/newsflash.xml
// description> ์๋ณด RSS
// copyright> Copyright(C) JTBC All rights reserved.
System.out.printf("title> %s =========================================\n", XMLDOM.getText(channelElement, "title"));
System.out.printf("link> %s\n", XMLDOM.getText(channelElement, "link"));
System.out.printf("description> %s\n", descriptionElement.getTextContent());
System.out.printf("copyright> %s\n\n", XMLDOM.getText(channelElement, "copyright"));
// 4.
NodeList itemNodeList = channelElement.getElementsByTagName("item");
for (int i = 0; i < itemNodeList.getLength(); i++)
{
Node itemNode = itemNodeList.item(i);
Element itemElement = (Element)itemNode;
// ์ฃผ์ ๊ธฐ์ฌ ------------------------------------------------
// title> [๋ ์จ] ์ ๊ตญ ๋์ฒด๋ก ํ๋ฆผ…๊ณณ๊ณณ ๋ฏธ์ธ๋จผ์ง '๋์จ'
// description> ์ค๋(2์ผ)์ ์ ๊ตญ์ด ๋์ฒด๋ก ํ๋ฆฐ ๊ฐ์ด๋ฐ, ์ผ๋ถ ์ง์ญ์ ๋ฏธ์ธ๋จผ์ง๊ฐ '๋์จ' ์์ค์ ๋ณด์ด๊ฒ ์ต๋๋ค.๋ฎ ์ต๊ณ ๊ธฐ์จ์ 3๋์์ 10๋๋ก ํฌ๊ทผํ ๋ ์จ๊ฐ ์์๋ฉ๋๋ค.
// link> https://news.jtbc.co.kr/article/article.aspx?news_id=NB12163616
System.out.println(" ์ฃผ์ ๊ธฐ์ฌ ----------------------------------------------------");
System.out.printf(" title> %s\n", XMLDOM.getText(itemElement, "title"));
System.out.printf(" description> %s\n", XMLDOM.getText(itemElement, "description"));
System.out.printf(" link> %s\n", XMLDOM.getText(itemElement, "link"));
}
} catch (Exception e)
{
System.out.println(e.toString());
}
}
}