PHP에서 XML 파일을 구문 분석하는 것은 데이터 교환 및 구성 파일을 처리하는 일반적인 방법입니다. XML_PARSE () 함수는 PHP가 제공하는 이벤트 중심의 XML 구문 분석 방법입니다. 다른 파서 함수를 결합하여 XML 파일의 요소와 속성을 읽을 수 있습니다. 이 기사에서는 XML_PARSE ()를 사용하여 XML을 구문 분석하고 요소 내용 및 속성 정보를 추출하는 방법을 이해하기 위해 단계별로 진행됩니다.
먼저 구문 분석을위한 간단한 XML 예제를 준비합니다. 파일의 이름이 example.xml 이라고 가정하면 내용은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book id="101" genre="fiction">
<title>PHP 시작하기</title>
<author>장 산</author>
</book>
<book id="102" genre="programming">
<title>심층적 인 이해 PHP</title>
<author>Li Si</author>
</book>
</books>
PHP의 XML 파싱은 이벤트 기반 접근법을 사용합니다. 우리는 여러 핸들러를 정의하고 파서에 바인딩해야합니다.
<?php
$parser = xml_parser_create();
function startElement($parser, $name, $attrs) {
echo "시작 요소: $name\n";
if (!empty($attrs)) {
echo "재산:\n";
foreach ($attrs as $key => $value) {
echo " - $key = $value\n";
}
}
}
function endElement($parser, $name) {
echo "결말 요소: $name\n";
}
function characterData($parser, $data) {
$data = trim($data);
if (!empty($data)) {
echo "콘텐츠: $data\n";
}
}
// 바인딩 처리 기능
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
이제 example.xml 파일을 읽고 파서를 사용하여 구문 분석합니다.
$fp = fopen("example.xml", "r");
if (!$fp) {
die("파일을 열 수 없습니다");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($parser, $data, feof($fp))) {
die(sprintf(
"XML 실수: %s 에서 %d 좋아요",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)
));
}
}
xml_parser_free($parser);
fclose($fp);
?>
스크립트를 실행 한 후 터미널은 각 요소의 시작과 끝, 속성 및 값을 차례로 출력합니다. 예를 들어:
시작 요소: BOOKS
시작 요소: BOOK
재산:
- ID = 101
- GENRE = fiction
시작 요소: TITLE
콘텐츠: PHP 시작하기
결말 요소: TITLE
시작 요소: AUTHOR
콘텐츠: 장 산
결말 요소: AUTHOR
결말 요소: BOOK
...
프로세서 기능과 결합 된 XML_PARSE () 함수를 통해 데이터를 추출하는 방법을 자유롭게 제어하고 구문 분석 결과를 데이터베이스에 저장하거나 해당 HTML 페이지를 생성 할 수도 있습니다.
echo "<a href='https://m66.net/book.php?id=101'>확인하다《PHP 시작하기》</a>";
이 방법은 데이터 읽기 프로세스를 사용자 정의하는 데 매우 실용적입니다.
XML_PARSE ()는 XML 데이터를 구문 분석하는 가볍고 빠른 방법을 제공합니다. DOM 파서보다 더 근본적이지만 성능 요구 사항이 높거나 데이터 구조가 알려진 상황에 매우 적합한 선택입니다. 이벤트 중심 구문 분석을 마스터하면 XML 파일의 구조 및 데이터 처리 메커니즘을 더 깊이 이해하는 데 도움이됩니다.
관련 태그:
xml_parse