drink 2010/01/22 22:04
XML 테스트는 XML문서를 어떻게 만들고 어떻게 화면에 표출하는가에 대한 예를 보기위해 공부하면서 몇자 적어본다.

본 예제는 php를 기준으로 하며 php5에 갖고 있는 libxml2 인 xml pasher를 기준으로 설명해본다.

xml 문서 작성

XML의 시작은 아래처럼 구문이 들어가야만 XML이 시작된다고 보면된다.
<?xml version='1.0' standalone='yes'?>

XML 문서는 html 문서와 유사한면이 있기도 하다. html 문서 작성하듯 xml 문서 역시 시작과 끝이 있다.

<구분자> 데이터 </구분자>
or
<구분자 type="type 데이터"> 데이터 </구분자>

이렇게 "구분자"로 시작해 끝낼때는 /로 시작하는 "구분자"를 넣어주면 된다.

이 데이터를 처리하는 몇가지 function을 살펴보자.

xml 파일을 읽어들이기
$xml=simplexml_load_file("filename");

PHP내의 xml string을 읽어들이기
$xml=SimpleXMLElement($xml_string);

구분자의 갯수 얻기
$p_cnt=count($xml->구분자);

xml 내용을 화면에 출력하기(array형식에 맞춰)
print_r($xml)

구분자의 내용을 출력하기
$xml->구분자->sub_구분자
or
$xml->구분자->{'sub_구분자'}

{' '}을 쓰는경우는 구분자만 쓸때 기호 에러(특수기호때문에)가 나면 이것으로 묶어서 구분자임을 알려준다.

구분자를 type 등으로 분류를 해줄경우 type의 형태를 출력
$xml->구분자['type'];
"type_데이터"가 출력됨.
이런 형태의 구분자의 데이터 출력
"$xml->구분자['type']"이 원하는 것일경우의 "$xml->구분자"가 데이터 출력됨.

linux 경로처럼 xml data tree 구조를 path로 사용한다.
$xml->xpath(/구분자1/구분자2/구분자3);  // 절대 경로
$xml->xpath(구분자2/구분자3); //상대경로




간단한 예로 책에 대해 보면

<?xml version='1.0' standalone='yes'?>
<library>
   
<book>
       
<name>손오공</name>
       
<price>1000</price>
       
<unit></unit>
       
<date type="년">2009</date>
       
<date type="월">10</date>
       
<date type="일">4</date>
     
</book>
   
<book>
       
<name>이상한나라</name>
       
<price>1</price>
       
<unit>만원</unit>
       
<date type="년">2009</date>
       
<date type="월">10</date>
       
<date type="일">4</date>
     
</book>
</library>

xml 데이터를 읽어들이는것은 아래처럼 simplexml_load_file과 같은 Class로 읽어들인다.

$xml = simplexml_load_file('ex.xml');
print_r
($xml); // xml의 구조를 화면에 출력한다.
echo
"<br><br><hr><br>";
echo $xml
->book[1]->{'name'}; //구분자 "name"의 값을 출력한다.

//책 "손오공"의 date를 년월일을 출력한다.
foreach ($xml->book[0]->date as $date) {
   
switch((string) $date['type']) {
   
case '년':
       echo $date
, '년';
       
break;
   
case '월':
       echo $date
, '월';
       
break;
   
case '일':
       echo $date
, '일';
       
break;
   
}
}

간단한 예로 위에서 했던것을 php속의 string으로 넣어보자.

<?php
$xmlstr
= <<<XML
<?xml version='1.0' standalone='yes'?>
<library>
   
<book>
       
<name>손오공</name>
       
<price>1000</price>
       
<unit></unit>
       
<date type="년">2009</date>
       
<date type="월">10</date>
       
<date type="일">4</date>
     
</book>
   
<book>
       
<name>이상한나라</name>
       
<price>1</price>
       
<unit>만원</unit>
       
<date type="년">2009</date>
       
<date type="월">10</date>
       
<date type="일">4</date>
     
</book>
</library>
XML;
?>

이렇게 만들고 아래처럼 불러들여 사용한다.

<?php
include
'ex.php';
 
$xml
= new SimpleXMLElement($xmlstr);
//xml 코드들
?>


xpath 예제

<?
$xml
=simplexml_load_file('test.xml');
$groups
=Array(a,b,c,d);

for($z=0;$z<sizeof($groups);$z++) {
   $result
=$xml->xpath("a/$groups[$z]/name");
   
while(list( ,$node) =each($result)) {
       $result2
=$xml->xpath("a/$groups[$z]/$node");
       
while(list( ,$node2)=each($result2)) {
          echo
"a/$groups[$z]/$node/".$node2['type']. ":". $node2."<br>";
       
}
   
}
}
?>
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/01/22 22:04 2010/01/22 22:04

Trackback Address : http://1go.co.kr/blog/trackback/3330

[로그인][오픈아이디란?]
분류없음 2007/01/21 00:47

아직도 대부분의 미국 인터넷 사용자들은 원하는 콘텐츠를 찾기 위해 해당 블로그나 뉴스 사이트를 직접 방문하고 있는 것으로 나타났다.

이에 따라 해당 사이트를 방문하지 않고도 원하는 콘텐츠를 볼 수 있도록 해 주는 RSS를 사용하는 사람들은 극히 일부에 불과하다고 테크웹이 19일(현지 시간) 웹 메트릭스 전문기관인 히트와이즈를 인용 보도했다.

리안 프레스콧 히트와이즈 연구원은 비즈니스맨과 기술에 밝은 일부 '얼리 어답터(early adopter)'들만 RSS를 사용하고 있는 것으로 조사됐다고 밝혔다. 하지만 그는 자신의 이 같은 발견이 결정적인 것은 아니라고 덧붙였다.

'RDF Site Summary' 'Rich Site Summary' 또는 'Really Simple Syndication'등의 약어로 통하는 RSS는 등록만 해 놓으면 해당 사이트에 새로운 내용이 업데이트될 때마다 그대로 받아볼 수 있도록 해 주는 것이 특징.

최근 들어 각 사이트들이 RSS 서비스를 제공하면서 독자들의 콘텐츠 습득 경로가 상당히 바뀌게 될 것이라는 기대를 불러 모으고 있다.

하지만 프레스콧 연구원은 "아직 블로그를 읽기 위해 RSS를 사용하는 사람들은 주류로 떠오르지는 않고 있다"라고 설명했다.

프레스콧은 현재 미국에서 가장 인기있는 RSS 리더인 블로그라인스, 로조, 구글 리더 등의 방문자 수가 생각보다 적은 편이라고 지적했다. 페레즈힐턴, 허핑턴포스트, 엔가젯 같은 인기 블로그들에 비해 시장 점유율 면에서 뒤진다는 것이다.

이 같은 상황은 대다수 사람들이 RSS 리더기를 통해 정보를 수집하기 보다는 바로 해당 블로그로 가는 비중이 높기 때문이라고 프레스콧이 설명했다.

프레스콧의 글은

weblogs.hitwise.com/leeann-prescott/2007/01/web_based_feed_readers.html에서 볼 수 있다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/01/21 00:47 2007/01/21 00:47
TAG ,

Trackback Address : http://1go.co.kr/blog/trackback/2510

[로그인][오픈아이디란?]
분류없음 2006/12/06 23:33


연세대 사내 벤처인 웹2.0 전문 벤처기업인 위자드웍스(대표 표철민, http://www.wzdworks.com)는 5일 오전 웹2.0 개인화 포털사이트인 위자드닷컴(http://wzd.com)의 세 번째 베타 버전을 공개했다.

위자드웍스는 연세대 신문방송학과에 재학중인 표철민(22) 사장이 지난 11월 설립한 업체.

표철민 사장은 "위자드닷컴은 미국의 구글 개인화페이지(http://www.google.com/ig)와 마이크로소프트 라이브닷컴(http://www.live.com), 프랑스의 넷바이브즈(http://www.netvibes.com), 벨기에의 페이지플레익스(http://www.pageflakes.com) 등에 이어 지난 8월 순수 자체 기술로는 전세계에서 여섯 번째, 국내에서 최초로 개발된 웹2.0 기반의 개인화 포털사이트"라고 말했다.

웹 2.0 트렌드에 맞춰 인터넷 업계의 아이디어가 만개하면서 기존에 고정화된 사이트의 개념이 바뀌고 있다.

미니홈피, 블로그, 카페 등 형식에 맞춰 운영하다 다른 방식으로 바꿀 수 없는 기존 사이트의 단점을 과감히 혁신하는 서비스가 등장했으며 서로 다른 포털의 영역을 따로 묶어서 새로운 페이지로 구성하는 서비스도 조용히 인기 몰이중이다. 하반기에 선보이게 될 서비스들도 사용자의 의도를 최대한 반영하는 개인 공간이 될 것으로 보인다.

홈 2.0, 홈페이지 형식을 파괴하라

최근 동영상 UCC 열풍의 주역 가운데 '아프리카'라는 실시간 동영상 UCC 서비스를 운영중인 나우콤(대표 문용식)이 내일부터 홈페이지 2.0 서비스인 '오피'(www.ohpy.com)를 선보인다.

오피는 그동안 포털에서 각 영역별로 제공되던 카페, 블로그, 쇼핑몰 등의 형식에 구애받지 않고 손쉽게 만들고, 자유자재로 변경할 수 있다는 점이 특징이다. 예를 들어 블로그 형식으로 홈페이지를 만들었다가 곧바로 카페 형식으로 전환할 수도 있으며 여기에 다시 쇼핑몰 요소를 덧붙일 수도 있다는 것.

파일 올리기 용량이 20MB인 점만 빼면 제약 요소가 거의 없다고 나우콤은 설명했다. 또한 오피 플랫폼은 웹 2.0의 기반 기술로 주목 받고 있는 AJAX(에이잭스)로 구축되었으며 RSS 사용이 원할하고 웹표준도 준수했다.

따라서 인터넷 익스플로러파이어폭스 등 브라우저에 따라 레이아웃이 흐트러지거나 기능을 사용할 수 없는 등의 기존 홈페이지 서비스의 단점을 극복했다. PDA, 휴대폰과 같은 이종 기기에서도 이용이 가능하다.

나우콤은 향후 Open API를 통해 플러그인 개발 및 매쉬업(Mash-up)을 가능하게 하여 캘린더, 지도 등을 이용자가 직접 제작, 추가하여 홈페이지를 더욱 풍성하고 다채롭게 꾸밀 수 있도록 할 예정이다.

한편 오피는 개인이 홈페이지를 운영하면서 공개한 전문지식이나 창작물 등 무형자산의 거래는 물론, 리뷰와 같이 UCC를 활용한 제품 판매에 이르기까지 다양한 형태의 실물자산 거래도 지원할 계획이다.

1인 브랜드 시대, 개인화 서비스 급물살

한편 정형화된 서비스로 인기를 끌면서도 웹 표준을 준수하지 않았다는 등의 이유로 전문가들에게 지적을 받고 있는 미니홈피 서비스를 성공시킨 싸이월드(www.cyworld.com)도 새로운 홈페이지 서비스를 준비중이다.

C2 프로젝트라는 이름으로 알려진 싸이월드 차세대 홈페이지 서비스 역시 개인들이 형식에 구애받지 않는 자유로운 홈페이지 구성을 가질 수 있도록 기능 구현할 것으로 보인다. C2 프로젝트로 탄생하게 될 새로운 서비스는 자유로운 홈페이지 구성이 가능한 '홈'과 개인 데이터 창고 개념의 '마이베이스' 등 두 가지다. 이 서비스는 12월 말 첫 선을 보이게 된다.

C2 프로젝트를 이끌고 있는 싸이월드 박지영 그룹장은 '홈' 서비스에 대해 각종 '위젯'이라는 모듈로 사용자가 원하는 형태의 홈페이지를 구성할 수 있는 서비스라고 소개했다. 예를 들어 자신의 '홈'을 단순히 블로그로 이용할 수도 있고 쇼핑몰과 커뮤니티 등의 기능의 위젯을 붙여 종합적인 홈페이지로 꾸미는 것도 가능하다. 박 그룹장은 '마치 블록 쌓는 것을 연상하면 쉽다'고 설명했다.

설치형 블로그 서비스로 인기를 얻고 있는 태터툴즈를 개발하고 있는 태터앤컴퍼니도 각 블로그 서비스를 서로 연결시킬 수 있는 서비스를 준비중이다. 이른바 '길드'라는 이름으로 알려진 이 서비스는 '팀블로그'나 '링블로그' 개념으로 각 블로거들이 올리는 글이 자동적으로 모이는 '1인 미디어 커뮤니티' 개념이다.

올 연말쯤 선보이게 될 이 서비스 역시 카페 등 커뮤니티의 고정화된 형식에 얽매이지 않고 다양하게 구성할 수 있게 만들어 다수의 1인 미디어들에게 영향력을 부여하고 수익을 공유할 수 있도록 메타블로그 서비스인 '이올린'(www.eolin.com)을 개편하겠다는 구상이다.

남에게 보여지는 홈페이지 서비스와는 별도로 사용자가 자신이 원하는 요소만 모아놓고 편리하게 이용할 수 있는 개인화 포털 서비스도 인기다.

MS 라이브(www.live.com)과 구글 개인화 홈페이지(www.google.co.kr/ig?)는 물론 국내 벤처업체인 나우필이 만든 피코디(www.pcodi.com), 위자드웍스의 위자드닷컴(www.wzd.com) 등 새로운 개념의 개인화 포털 서비스가 속속 등장하고 있다. 위젯 서비스와 오픈API 등이 활성화될수록 각 사이트 요소를 분해하고 새롭게 조합하는 매시업(mash up) 서비스들이 인기를 끌 전망이다.

야후!(www.yahoo.co.kr), 다음(www.daum.net), 네이트(www.nate.com) 등 굴지의 포털들도 각 요소를 서로 분리하고 순서를 바꿀 수 있게 하는 등 콘텐츠 영역에서 일고 있는 UCC(손수제작물) 열풍과 더불어 사용자에게 좀더 자유도를 부여하는 홈페이지 2.0 시대가 급물살을 타고 있다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
2006/12/06 23:33 2006/12/06 23:33

Trackback Address : http://1go.co.kr/blog/trackback/1997

[로그인][오픈아이디란?]