7

xml 파싱 예제

· 2012-12-28 (금) 14:26:26 · 6185 · 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,240
13-03-01 조회 5,569
13-03-01 조회 8,311
13-03-01 조회 6,307
13-02-26 조회 3,918
13-02-26 조회 3,861
13-02-26 조회 4,759
13-02-24 조회 8,171
13-02-24 조회 4,258
13-02-24 조회 3,500
13-02-24 조회 5,315
13-02-24 조회 5,308
13-02-24 조회 4,375
13-02-24 조회 5,712
13-02-24 조회 9,400
13-02-14 조회 5,107
13-02-13 조회 9,036
13-01-29 조회 7,678
13-01-24 조회 5,027
13-01-24 조회 4,902
13-01-17 조회 4,313
13-01-16 조회 4,345
13-01-08 조회 4,395
12-12-27 조회 4,058
12-12-20 조회 1.1만
12-12-20 조회 3,381
12-12-06 조회 4,368
12-12-01 조회 4,131
12-11-28 조회 5,697
12-11-25 조회 5,404
12-10-20 조회 4,664
12-10-03 조회 4,831
12-09-26 조회 4,990
12-09-15 조회 8,443
12-09-14 조회 5,457
12-09-11 조회 3,962
12-09-10 조회 3,978
12-09-05 조회 8,859
12-08-29 조회 4,659
12-08-26 조회 3,788
12-08-23 조회 3,488
12-08-22 조회 3,574
12-08-22 조회 4,388
12-08-21 조회 3,535
12-08-20 조회 3,455
12-08-20 조회 9,258
12-08-15 조회 4,377
12-08-13 조회 3,295
12-08-11 조회 4,718
12-08-05 조회 4,562
12-08-03 조회 3,345
12-08-03 조회 4,041
12-08-02 조회 5,023
12-07-29 조회 4,131
12-07-26 조회 3,708
12-07-26 조회 3,577
12-07-22 조회 3,489
12-07-20 조회 3,322
12-07-19 조회 4,187
12-07-19 조회 3,442
12-07-16 조회 3,563
12-07-16 조회 4,483
12-07-15 조회 3,559
12-07-12 조회 7,389
12-07-12 조회 5,030
12-07-11 조회 3,076
12-07-09 조회 3,237
12-07-05 조회 3,849
12-07-04 조회 4,421
12-07-04 조회 3,826
12-07-04 조회 4,348
12-06-29 조회 3,813
12-06-27 조회 3,402
12-06-24 조회 3,880
12-06-22 조회 4,188
12-06-22 조회 8,600
12-06-22 조회 3,251
12-06-21 조회 3,284
12-06-17 조회 3,907
12-06-14 조회 4,011
12-06-14 조회 3,294
12-06-08 조회 4,440
12-06-06 조회 3,403
12-06-04 조회 4,159
12-05-26 조회 4,977
12-05-26 조회 3,932
12-05-25 조회 3,228
12-05-24 조회 3,330
12-05-22 조회 3,374
12-05-20 조회 3,002
12-05-16 조회 3,137
12-05-15 조회 3,532
12-05-10 조회 3,963
12-05-08 조회 3,486
12-05-04 조회 3,339
12-05-03 조회 4,294
12-05-02 조회 3,429
12-05-02 조회 3,204
12-05-02 조회 3,301
12-04-26 조회 3,450