현재 위치: > 최신 기사 목록> XML_SET_DEFAULT_HANDLER 기능은 XML 문서에서 CDADOD를 어떻게 처리합니까?

XML_SET_DEFAULT_HANDLER 기능은 XML 문서에서 CDADOD를 어떻게 처리합니까?

M66 2025-06-22
<?php
/**
 * 기사 제목: xml_set_default_handler 기능을 처리하는 방법 XML 문서에서 CDATA 마디?
 */

?>
<hr>

### xml_set_default_handler 기능을 처리하는 방법 XML 문서에서 CDATA 마디?

존재하다 PHP 가운데,`xml_set_default_handler` 기능은 매우 유용한 도구입니다,그것은 개발자를 허용합니다 XML 분석过程가운데遇到~의默认事件设置处理程序。특히,그것은 그것을 다루는 방법을 포함합니다 XML 문서에서 CDATA 마디。이 기사는 사용 방법을 자세히 소개합니다. `xml_set_default_handler` 처리 할 기능 CDATA 마디。

#### 무엇인가요 CDATA 마디?

존재하다 XML 文档가운데,CDATA(Character Data)마디是一种特殊~의文本마디,구문 분석 할 필요가없는 문자 데이터를 포함 할 수 있습니다.。CDATA 해당 지역의 시작 표시는입니다 `<![CDATA[`,그리고 끝 마크는입니다 `]]>`。존재하다这个区域内,모든 캐릭터,좋아요 `<` 그리고 `&` 그런 특수 인물,그대로 처리됩니다,고려되지 않습니다 XML 요소 분석。

예를 들어,다음은 포함되어 있습니다 CDATA ~의 XML 예:

```xml
<note>
    <to>Tove</to>
    <from>Jani</from>
    <message><![CDATA[This is a <message> with some <text> that is not parsed]]></message>
</note>

이 예에서 태그의 내용 일부와 함께 그것은 구문 분석되지 않습니다]]>는 일반 텍스트로 처리됩니다.

xml_set_default_handler 함수 소개

XML_SET_DEFAULT_HANDLER 함수는 PHP에서 XMLPARSER 클래스의 중요한 방법입니다. XML 파서의 기본 처리 기능을 설정하는 데 사용됩니다. 이 핸들러는 XML 문서의 모든 비특이적 유형의 노드를 만나면 호출됩니다. 기본 처리 기능은 문서에서 텍스트 노드, CDATA 노드, 주석 등을 캡처합니다.

함수는 다음과 같이 정의됩니다.

 bool xml_set_default_handler ( resource $parser, callable $handler )
  • $ parser : XML 파서의 리소스 핸들.

  • $ 핸들러 : 기본 노드를 처리하는 데 사용되는 콜백 함수. 이 기능은 이벤트 유형과 해당 텍스트 데이터의 두 매개 변수를 수신합니다.

XML_SET_DEFAULT_HANDLER를 통해 cdata 노드를 처리하는 방법?

XML 파서가 CDATA 노드를 만나면 기본 동작은 CDATA 컨텐츠를 일반 텍스트로 취급하는 것입니다. 그러나 XML_SET_DEFAULT_HANDLER를 통해 파서에 대한 사용자 정의 기본 핸들러를 설정하여 이러한 내용을보다 세분화하게 처리 할 수 ​​있습니다.

다음은 XML에서 CDATA 노드를 처리하기 위해 XML_SET_DEFAULT_HANDLER를 사용하는 방법을 보여주는 간단한 예입니다.

 <?php
$xml_data = <<<XML
<note>
    <to>Tove</to>
    <from>Jani</from>
    <message><![CDATA[This is a <message> with some <text> that is not parsed]]></message>
</note>
XML;

function default_handler($parser, $data) {
    // 输出处理~의CDATA콘텐츠
    echo "CDATA 콘텐츠: " . htmlspecialchars($data) . "\n";
}

// 만들다 XML 파서
$parser = xml_parser_create();

// 기본 처리 기능을 설정하십시오
xml_set_default_handler($parser, 'default_handler');

// 분석 XML 데이터
xml_parse($parser, $xml_data);

// 释放파서
xml_parser_free($parser);
?>

분석 프로세스 분석

  1. 파서 생성 : XML_PARSER_CREATE () 함수를 사용하여 XML 파서를 만듭니다.

  2. 처리 함수 설정 : XML_SET_DEFAULT_HANDLER를 통해 파서의 기본 처리 기능으로 DEFAULT_HANDLER 기능을 설정하십시오. 이 함수는 파서가 명시 적으로 지정되지 않은 유형의 노드를 만날 때마다 호출됩니다.

  3. XML 데이터 구문 분석 : XML_PARSE ()를 사용하여 XML 데이터를 구문 분석하십시오. XML에서 태그에는 cdata 노드가 포함되어 있으며 파서는 노드의 내용을 default_handler 함수로 전달합니다.

  4. 출력 처리 결과 : default_handler 함수는 HTML 엔터티 형식으로 CDATA 컨텐츠를 출력합니다.

결과 출력

위 코드를 실행하면 출력이 다음과 같습니다.

 CDATA 콘텐츠: This is a &lt;message&gt; with some &lt;text&gt; that is not parsed

이는 XML 파서가 CDATA 노드의 내용을 성공적으로 캡처하여 사용자 지정 처리 기능으로 전달했음을 보여줍니다. CDATA (예 : <> )의 특수 문자는 구문 분석 오류를 피하기 위해 HTML 엔티티로 변환됩니다.

요약

XML_SET_DEFAULT_HANDLER 기능을 통해 개발자는 CDATA 노드를 포함한 XML 문서에서 다양한 내용을 유연하게 처리 할 수 ​​있습니다. 커스텀 핸들러를 구문 분석기에 바인딩 한 후 명시 적으로 정의되지 않은 모든 노드가 올바르게 처리되도록 보장 할 수 있습니다. 특히 CDATA 노드에 XML 구문 분석을 방해 할 수있는 특수 문자가 포함 된 경우. 이 방법은 XML 구문 분석을위한 더 많은 제어 및 사용자 정의 기능을 제공하며 XML 데이터를 처리하기위한 가장 실용적인 도구 중 하나입니다.