보물창고/Programming2011.08.22 16:39







xml문서를 파일에서 읽어오는 방법과 웹페이지로 읽어 오는 방법 모두 구현되어 있습니다



java 소스 입니다 

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

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 org.xml.sax.XMLReader;

public class Db2ConnectGetContentsXml {
	public static void main(String[] args)
	{
		try {
/*
			//파일 입출력 용
			File file = new File("http:/파일 위치/my_test/mySampleServlet2?tn=neck_cold");
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document doc = builder.parse(file);
			doc.getDocumentElement().normalize();
*/
			String tableName = "neck_cold";
			//url입출력용
			URL url  = new URL("http://주소/my_test/mySampleServlet2?tn="+tableName);
            SAXParserFactory parserModel = SAXParserFactory.newInstance();
            SAXParser concreteParser   = parserModel.newSAXParser();
            XMLReader myReader    = concreteParser.getXMLReader();
            myReader.parse(new InputSource(url.openStream()));
            DocumentBuilderFactory factory1 = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder2 = factory1.newDocumentBuilder();
			Document doc3 = builder2.parse(new InputSource(url.openStream()));
            
            
			
			System.out.println("Root element " + doc3.getDocumentElement().getNodeName());

			NodeList headline_node_list = doc3.getElementsByTagName("데이터");
			Node headline_node = headline_node_list.item(0);
			if (headline_node.getNodeType() == Node.ELEMENT_NODE) {
				Element headline_element = (Element) headline_node;

				NodeList news_node_list = headline_element.getElementsByTagName("테이블");
				for (int j = 0; j < news_node_list.getLength(); j++) {
					Node news_node = news_node_list.item(j);
					if (news_node.getNodeType() == Node.ELEMENT_NODE) {
						Element news_element = (Element) news_node;

						NodeList id_node_list0 = news_element.getElementsByTagName("글번호");
						Node id_node0 = id_node_list0.item(0);
						System.out.println(id_node0.getNodeName() + "  : " + id_node0.getTextContent());

						NodeList id_node_list = news_element.getElementsByTagName("본문");
						Node id_node = id_node_list.item(0);
						System.out.println(id_node.getNodeName() + "  : " + id_node.getTextContent());

						NodeList id_node_list1 = news_element.getElementsByTagName("아이디");
						Node id_node1 = id_node_list1.item(0);
						System.out.println(id_node1.getNodeName() + "  : " + id_node1.getTextContent());

						NodeList id_node_list2 = news_element.getElementsByTagName("시간");
						Node id_node2 = id_node_list2.item(0);
						System.out.println(id_node2.getNodeName() + "  : " + id_node2.getTextContent());

						NodeList id_node_list3 = news_element.getElementsByTagName("카테고리");
						Node id_node3 = id_node_list3.item(0);
						System.out.println(id_node3.getNodeName() + "  : " + id_node3.getTextContent());

						NodeList id_node_list4 = news_element.getElementsByTagName("댓글갯수");
						Node id_node4 = id_node_list4.item(0);
						System.out.println(id_node4.getNodeName() + "  : " + id_node4.getTextContent());

						NodeList id_node_list5 = news_element.getElementsByTagName("댓글위치");
						Node id_node5 = id_node_list5.item(0);
						System.out.println(id_node5.getNodeName() + "  : " + id_node5.getTextContent());
					}
				}
			}
		}
		catch (Exception e) {
			System.out.println(e.getMessage());
			//e.printStackTrace();
		}
	}
}




xml 소스 입니다

<테이블>
<글번호>27 
<본문>9컨텐츠내용 
<아이디>paranmul@paranmul.pe.kr 
<시간>11.08.16 18:58 
<카테고리>일상 
<댓글갯수>0 
<댓글위치>0 
 
<테이블>
<글번호>26 
<본문>8컨텐츠내용 
<아이디>paranmul@paranmul.pe.kr 
<시간>11.08.16 18:58 
<카테고리>일상 
<댓글갯수>0 
<댓글위치>0 
 



신고





Posted by 파란물







제목
Android에서 XML과 JSON 사용하기, Part 1: Android 애플리케이션에서 XML과 JSON을 사용함으로써 얻을 수 있는 혜택 탐구

기사 본문으로 가시면 내용 전체를 보실 수 있습니다



요약: 두 개의 파트로 구성된 이 시리즈 기사에서는 인터넷에서 사용하는 가장 일반적인 데이터 형식인 XML과 JSON(JavaScript Object Notation)을 Android 플랫폼에서 처리하는 기술을 살펴봅니다. 첫 번째 파트에서는 XML과 JSON의 기본적인 내용과 이 두 형식으로 제공되는 Twitter 상태 업데이트 피드를 구문 분석하고 표시하는 Android 애플리케이션을 빌드하는 방법



내용 목차

XML: 오랜 친구

XML 스키마

Listing 1. 데이터를 XML 구조로 패키지하여 응답 요소 내에 저장하기

작업영역에서의 XML

Listing 2. 각 XML 파일의 첫 번째 줄에 있는 공통 선언

JSON: 인터넷에 새롭게 등장한 기술

Listing 3. HTML 페이지에서 JSON 오브젝트 사용하기

애플리케이션 가능성: Twitter 피드

그림 1. 자신의 Twitter 페이지에 있는 피드 페이지를 가리키는 링크

Listing 4. XML 스니펫

Listing 5. JSON 형식의 피드 데이터

XMLvsJSON 애플리케이션

그림 2. Eclipse 프로젝트의 파일 구조

실시간 업데이트

그림 3. 구문 분석 옵션을 선택하기 전의 애플리케이션 UI

Listing 6. UI 레이아웃

Listing 7. onCreate() 메소드

XML 구문 분석

SAX 대 DOM

Listing 8. examineXMLFIle() 메소드

Listing 9. twitterFeedHandler 클래스

JSON 구문 분석

Listing 10. examineJSONfile() 메소드 호출

결론
이 기사에서는 Android 애플리케이션을 배경으로 XML과 JSON 데이터 교환 형식을 소개했다. JSON 방식과 비교하면 XML 방식이 다소 속도가 빠르고 메모리에 제약을 덜 받지만 그 대신 복잡하다. Part 2에서는 Android 애플리케이션을 위한 사용자 정의 동적 애플리케이션 로직과 JSON 데이터 및 WebKit 기반 WebView 위젯이 결합된 몇 가지 고급 기술을 소개하게 된다.



 기사 원문으로 가시면 에제 코드와 자세한 설명을 볼 수 있습니다
아이베엠 디벨로퍼 웍스 : http://www.ibm.com/developerworks/kr/
기사 원문 주소 : 
http://www.ibm.com/developerworks/kr/library/x-andbene1/index.html
신고





Posted by 파란물








기사 원문으로 가시면 예제 코드와 자세한 설명을 볼 수 있습니다



요약: Google App Engine은 2008년 4월에 출시되었고, Python을 사용하여 CSV 파일에 저장된 대용량 데이터를 업로드하는 메소드가 포함되어 있습니다. 그 다음 해에는 Java™ 언어 지원도 추가되었습니다. 지금까지 App Engine은 대용량 업로드에 대한 Java 원시 지원이 없고, CSV는 대용량 업로딩 도구로서 지원되는 유일한 데이터 스토리지 매체로 남아있습니다. 이 기사에서는 XML 문서에서부터 App Engine 지속적 데이터베이스에 데이터를 저장하는 다양한 메소드에 대해 알아봅니다.



백그라운드

간단한 XML 지속성

목록 1. employees.xml

목록 2. Employee.java

목록 3. EmployeeHandler.java

목록 4. XMLImportPersistenceManagerFactory.java

목록 5. web.xml

목록 6. CreateEmployeeServlet.java


수동으로 입력된 XML 데이터 지속하기

목록 7. EmployeeServlet.java에서 리팩토링된 doGet 메소드

목록 8. createEmployee.jsp

목록 9. EmployeeServlet.java로 doPost 메소드 추가 

목록 10. String 매개변수를 사용하는 EmployeeHandler 생성자


XML 데이터를 업로드하는 웹 서비스 사용하기

목록 11. employeeService.wsdl

목록 12. 사용자 정의 AxiomSoapMessageFactory 클래스

목록 13. 사용자 정의 Marshaller 클래스

목록 14. ws-servlet.xml

목록 15. SOAP 서블릿 정의 web.xml

목록 16. CreateEmployeeService.java



XML 문서에서부터 대용량 업로드

목록 17. EmployeeHandler.java


결론
이 기사에서는 XML 문서에서 데이터로부터 오브젝트를 작성하고 GAE 개발자가 사용 가능한 DataStore에서 이를 지속하는 다양한 메소드를 시연하였다. 마지막의 SOAP 기반 클라이언트와 서버 메소드를 통해 대용량 XML 데이터를 업로드하는 메소드는 이제 Java 개발자가 사용할 수 있다.





기사 원문으로 가시면 에제 코드와 자세한 설명을 볼 수 있습니다
아이베엠 디벨로퍼 웍스 : http://www.ibm.com/developerworks/kr/


신고

'보물창고 > developerWorks' 카테고리의 다른 글

HTML 5로 모바일 웹 애플리케이션 작성하기, Part 4: Web Workers를 사용하여 모바일 웹 애플리케이션 속도 높이기  (0) 2011.06.28
HTML 5로 모바일 웹 애플리케이션 작성하기, Part 3: HTML 5를 사용하여 모바일 웹 애플리케이션을 오프라인에서 작동하게 하기  (0) 2011.06.28
HTML 5로 모바일 웹 애플리케이션 작성하기, Part 2: HTML 5로 모바일 웹 애플리케이션에 대한 로컬 스토리지 잠금 해제하기  (0) 2011.06.28
[JSP] 게시판 만들기1HTML 5로 모바일 웹 애플리케이션 작성하기, Part 1: HTML 5, geolocation API 및 웹 서비스를 결합하여 모바일 매시업 작성하기  (0) 2011.06.28
Google App Engine으로 XML 데이터 가져오기(Google App Engine의 지속적 오브젝트 데이터베이스로 XML 파일에 로컬로 저장된 대용량 데이터 업로드)  (0) 2011.05.25
UTF-8으로 XML 문서 인코딩하기 (힌트: 사이즈와는 관계 없음)  (0) 2011.05.25
xml을 사용하는 좋은 습관 열가지(xml을 좀 더 효율적이고 효과적으로 사용하자)  (0) 2011.05.25
색다른 앱 공개 오디션 2011 똑똑한 지구를 위한 똑똑한 애플리케이션 공모전 시즌II (어플, 웹, 모바일, IBM, SK, redhat, 중소기업청 Smarter Applicationfor Smarter Planet,)  (0) 2011.04.20
RunTime: Linux, Windows 2000, Windows XP의 "pipe" (운영체제, 리눅스, 윈도우, 파이프)  (0) 2011.04.15





Posted by 파란물
TAG App, Google, XML







기사 원문으로 가시면 전체 기사를 볼 수 있습니다



요약: Unicode는 오늘날 이 지구상에 존재하는 모든 중요한 전산 문자 세트 중 으뜸이라 할 수 있다. UTF-8은 Unicode 문자 세트를 적절하게 바이너리 인코딩 한 것이다. 이 글은, 모든 XML 문서가 UTF-8에서만 독점적으로 생성되어야 한다고 주장한다. 보장할 수 있는 결과는 보다 강력한, 상호 운용성이 향상된 문서의 세계이다.



Google의 사이트맵 서비스는 최근 XML 커뮤니티에 작은 반향을 일으켰다. 모든 사이트맵이 Unicode의 UTF-8 인코딩으로만 퍼블리시 될 것을 요구했던 것이다. Google은 UTF-16 같은 Unicode 인코딩 대안 조차도 허용하지 않았다. ISO-8859-1 같은 비 Unicode 인코딩은 더 말할 나위도 없다. 기술적으로, Google은 비순응 XML 파서를 사용하고 있다는 것을 의미한다. 왜냐하면 XML Recommendation에서는 "모든 XML 프로세서는 Unicode 3.1의 UTF-8과 UTF-16 인코딩을 허용해야 한다." 라고 명시되어 있기 때문이다. 하지만 이것이 실제로도 큰 문제인가?

누구나 UTF-8을 사용할 수 있다!

Figure 1. Eclipse에서 디폴트 문자 세트 변경하기

스팩

중국어, 일본어, 한국어

강건함


요약
국제화가 점점 진행되는 요즘, 언어와 정치적 경계는 날마다 흐려지고 있고 지역에 의존하는 문자 세트는 더 이상 쓸모가 없다. Unicode는 지구 상의 많은 지역에 걸쳐 상호운용 되는 유일한 문자이다. UTF-8은 그러한 Unicode에 맞는 올바른 인코딩이다.
레거시 ASCII 시스템과의 호환성을 비롯하여 광범위한 툴 지원이 가능하다.
프로세스가 단순하고 효율적이다.
오염이 덜 된다.
플랫폼 중립적이다.
문자 세트와 인코딩에 대한 논의를 마쳐야 할 시간이다. UTF-8은 좋은 선택이다.



기사 원문으로 가시면 에제 코드와 자세한 설명을 볼 수 있습니다
아이베엠 디벨로퍼 웍스 : http://www.ibm.com/developerworks/kr/


신고

'보물창고 > developerWorks' 카테고리의 다른 글

HTML 5로 모바일 웹 애플리케이션 작성하기, Part 3: HTML 5를 사용하여 모바일 웹 애플리케이션을 오프라인에서 작동하게 하기  (0) 2011.06.28
HTML 5로 모바일 웹 애플리케이션 작성하기, Part 2: HTML 5로 모바일 웹 애플리케이션에 대한 로컬 스토리지 잠금 해제하기  (0) 2011.06.28
[JSP] 게시판 만들기1HTML 5로 모바일 웹 애플리케이션 작성하기, Part 1: HTML 5, geolocation API 및 웹 서비스를 결합하여 모바일 매시업 작성하기  (0) 2011.06.28
Google App Engine으로 XML 데이터 가져오기(Google App Engine의 지속적 오브젝트 데이터베이스로 XML 파일에 로컬로 저장된 대용량 데이터 업로드)  (0) 2011.05.25
UTF-8으로 XML 문서 인코딩하기 (힌트: 사이즈와는 관계 없음)  (0) 2011.05.25
xml을 사용하는 좋은 습관 열가지(xml을 좀 더 효율적이고 효과적으로 사용하자)  (0) 2011.05.25
색다른 앱 공개 오디션 2011 똑똑한 지구를 위한 똑똑한 애플리케이션 공모전 시즌II (어플, 웹, 모바일, IBM, SK, redhat, 중소기업청 Smarter Applicationfor Smarter Planet,)  (0) 2011.04.20
RunTime: Linux, Windows 2000, Windows XP의 "pipe" (운영체제, 리눅스, 윈도우, 파이프)  (0) 2011.04.15
Google Spreadsheets 데이터와 PHP의 통합, Part 2 (구글, 문서도구, doc, 스프레드시트, data)  (0) 2011.04.15





Posted by 파란물











요약 : Android 애플리케이션을 개발하는 경우에는 애플리케이션 프로세스 및 샌드박스, 코드 및 데이터 공유, 애플리케이션 서명을 통한 시스템 보호 및 권한 사용을 포함한 다수의 보안 관련 측면을 다루어야 합니다. 샘플 코드에 대해 작업할 때 Android 애플리케이션 개발에서 이러한 보안 측면을 강조하십시오.



 
목차

샌드박스, 프로세스 및 권한
개발자 유스케이스
애플리케이션 서명
수동으로 개인 키 및 고액 키와 공개 키 인증서 작성하기
수동으로 애플리케이션 서명하기
수동으로 애플리케이션 최적화 하기
애프릴 케이션이 서명되었는지 수동으로 확인하기
Eclipse ADT를 사용하여 키 및 인증서를 작성하고 애플리케이션을 서명하고 최적화 하기
서명되지 않은 애플리케이션 내보내기
서명된 애플리케이션 내보내기
권한 사용하기
컨텐츠 공급자와 파일 권한
런타임 Permission API
결론 



 
좀더 자세한 설명과 소스코드 예제등은 기사 원문 주소로 가시면 확인 하실 수 있습니다
 아이비엠 디벨로퍼 웍스 : http://www.ibm.com/developerworks/kr
기사 원문 주소 :http://www.ibm.com/developerworks/kr/library/x-androidsecurity/index.html



 
아이베엠 디벨로퍼 트위터 보기 
http://twitter.com/#search?q=ibmdw
 
저작자 표시 비영리 변경 금지
신고





Posted by 파란물

티스토리 툴바