7

xml 파싱 예제

· 2012-12-28 (금) 14:26:26 · 6124 · 1

<?xml version="1.0" encoding="utf-8"?>
<CATEGORIES type="day">
<CATEGORY label="22" data="20101022"/>
<CATEGORY label="23" data="20101023"/>
</CATEGORIES>

// XML 파일 열고 루트 테그 가져오기
$dom = DOMDocument::load($filepath);
$temp = $dom->getElementsByTagName('CATEGORIES');
$root = $temp->item(0);

// 노드 추가 하기 위해 추가할 위치 검색
// 여기서는 날짜를 기준으로 정렬하는 부분인데, 현재 입력된 날짜가 크면 다음으로, 작으면 그 노드의 앞을 지정
$childs = $root->getElementsByTagName('CATEGORY');
for ($L1 = 0, $C1 = $childs->length; $L1 < $C1; $L1++)
{
$child = $childs->item($L1);
$label = $child->getAttribute('label');

if ($data == $label) { $isFound = -1; break; }
elseif ($data < $label) { $isFound = 1; break; }
}

// 신규 XML 파일 생성
// <?xml version="1.0" encoding="utf-8"?><CATEGORIES type="day" />
$dom = new DOMDocument('1.0', 'utf-8');
$root = $dom->createElement('CATEGORIES');
$root->setAttribute('type', 'day');
$dom->appendChild($root);

// 신규 노드 생성
//<CATEGORY label="22" data="20101022"/>
$node = $dom->createElement('CATEGORY');
$node->setAttribute('label', '22');
$node->setAttribute('data', '20101022');

// 추가할 위치가 있는 경우 그 앞에 추가하고, 없다면 맨 뒤의 노드에 추가
if ($isFound == 1) { $root->insertBefore($node, $child); }
elseif ($isFound == 0) { $root->appendChild($node); }

// 저장
//echo htmlspecialchars($dom->saveXML());
createDirectory($filepath);
$dom->save($filepath);
chmod($filepath, 0646);

|

댓글 1개

좋은 자료네요
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
13-03-03 조회 6,216
13-03-01 조회 5,551
13-03-01 조회 8,289
13-03-01 조회 6,265
13-02-26 조회 3,878
13-02-26 조회 3,833
13-02-26 조회 4,719
13-02-24 조회 8,156
13-02-24 조회 4,235
13-02-24 조회 3,488
13-02-24 조회 5,290
13-02-24 조회 5,287
13-02-24 조회 4,357
13-02-24 조회 5,698
13-02-24 조회 9,384
13-02-14 조회 5,080
13-02-13 조회 9,000
13-01-29 조회 7,650
13-01-24 조회 5,008
13-01-24 조회 4,885
13-01-17 조회 4,285
13-01-16 조회 4,305
13-01-08 조회 4,378
12-12-27 조회 4,036
12-12-20 조회 1.1만
12-12-20 조회 3,361
12-12-06 조회 4,349
12-12-01 조회 4,098
12-11-28 조회 5,671
12-11-25 조회 5,377
12-10-20 조회 4,640
12-10-03 조회 4,797
12-09-26 조회 4,981
12-09-15 조회 8,425
12-09-14 조회 5,442
12-09-11 조회 3,934
12-09-10 조회 3,963
12-09-05 조회 8,835
12-08-29 조회 4,620
12-08-26 조회 3,755
12-08-23 조회 3,468
12-08-22 조회 3,537
12-08-22 조회 4,352
12-08-21 조회 3,502
12-08-20 조회 3,430
12-08-20 조회 9,239
12-08-15 조회 4,350
12-08-13 조회 3,272
12-08-11 조회 4,686
12-08-05 조회 4,530
12-08-03 조회 3,311
12-08-03 조회 4,009
12-08-02 조회 4,996
12-07-29 조회 4,101
12-07-26 조회 3,684
12-07-26 조회 3,555
12-07-22 조회 3,461
12-07-20 조회 3,299
12-07-19 조회 4,164
12-07-19 조회 3,421
12-07-16 조회 3,542
12-07-16 조회 4,463
12-07-15 조회 3,520
12-07-12 조회 7,363
12-07-12 조회 5,007
12-07-11 조회 3,040
12-07-09 조회 3,222
12-07-05 조회 3,821
12-07-04 조회 4,400
12-07-04 조회 3,807
12-07-04 조회 4,337
12-06-29 조회 3,784
12-06-27 조회 3,368
12-06-24 조회 3,844
12-06-22 조회 4,155
12-06-22 조회 8,574
12-06-22 조회 3,228
12-06-21 조회 3,252
12-06-17 조회 3,873
12-06-14 조회 3,978
12-06-14 조회 3,259
12-06-08 조회 4,413
12-06-06 조회 3,369
12-06-04 조회 4,120
12-05-26 조회 4,960
12-05-26 조회 3,909
12-05-25 조회 3,198
12-05-24 조회 3,300
12-05-22 조회 3,338
12-05-20 조회 2,974
12-05-16 조회 3,115
12-05-15 조회 3,510
12-05-10 조회 3,940
12-05-08 조회 3,459
12-05-04 조회 3,309
12-05-03 조회 4,256
12-05-02 조회 3,405
12-05-02 조회 3,165
12-05-02 조회 3,273
12-04-26 조회 3,421