찾다
백엔드 개발PHP 튜토리얼用 DomIt! 做简单的 XML 处理工作_PHP教程

用 DomIt! 做简单的 XML 处理工作_PHP教程

Jul 13, 2016 pm 05:38 PM
xml개인하다다루다일하다문서가지다사용~의단순한이것

有一次我拿到了个处理 XML 文件的活儿。这个 XML 文件是用来跟 Flash mp3 播放器做通信使用的,包含了音乐的地址、描述等。我需要做的仅仅是让管理员可以通过一个表单完成添加、删除音乐项并更新 XML 文件。听起来很简单吧?但我却在做删除功能时遇到了麻烦。在我花了无数时间抓耳挠腮想办法、搜索、翻阅官方 PHP 文档里关于 DOM XML 的内容时,DomIt! 及时地出现了(其实是我及时地找到了)。DomIt! 非常的强大、易用(至少拿来做简单的处理工作时)、兼容 PHP4,并且在愿意细读它的源代码时帮助你快速地学好 DOM XML。

 

当时需要的 XML 文件为如下格式:

<span id="ubkp4" style="color: rgb(0,153,0)"><span id="ubkp5" style="color: black"><b id="bw6l"><</b></span>?xml<span id="ubkp6" style="color: rgb(0,0,102)">version</span>=<span id="ubkp7" style="color: rgb(255,0,0)">"1.0"</span><span id="ubkp8" style="color: black"><b id="bw6l0">?></b></span></span><br id="ubkp9" /><span id="ubkp10" style="color: rgb(0,153,0)"><span id="ubkp11" style="color: black"><b id="bw6l1"><audio</b><span id="ubkp12" style="color: black"><b id="bw6l2">></b></span></span></span><br id="ubkp13" />    <span id="ubkp14" style="color: rgb(0,153,0)"><span id="ubkp15" style="color: black"><b id="bw6l3"><file</b><span id="ubkp16" style="color: black"><b id="bw6l4">></b></span></span></span><br id="ubkp17" />        <span id="ubkp18" style="color: rgb(0,153,0)"><span id="ubkp19" style="color: black"><b id="bw6l5"><track</b><span id="ubkp20" style="color: black"><b id="bw6l6">></b></span></span></span>音乐文件位置<span id="ubkp21" style="color: rgb(0,153,0)"><span id="ubkp22" style="color: black"><b id="bw6l7"></track</b><span id="ubkp23" style="color: black"><b id="bw6l8">></b></span></span></span><br id="ubkp24" />        <span id="ubkp25" style="color: rgb(0,153,0)"><span id="ubkp26" style="color: black"><b id="bw6l9"><caption</b><span id="ubkp27" style="color: black"><b id="bw6l10">></b></span></span></span>音乐文件标题<span id="ubkp28" style="color: rgb(0,153,0)"><span id="ubkp29" style="color: black"><b id="bw6l11"></caption</b><span id="ubkp30" style="color: black"><b id="bw6l12">></b></span></span></span><br id="ubkp31" />        <span id="ubkp32" style="color: rgb(0,153,0)"><span id="ubkp33" style="color: black"><b id="bw6l13"><record</b><span id="ubkp34" style="color: black"><b id="bw6l14">></b></span></span></span>音乐录制信息<span id="ubkp35" style="color: rgb(0,153,0)"><span id="ubkp36" style="color: black"><b id="bw6l15"></record</b><span id="ubkp37" style="color: black"><b id="bw6l16">></b></span></span></span><br id="ubkp38" />    <span id="ubkp39" style="color: rgb(0,153,0)"><span id="ubkp40" style="color: black"><b id="bw6l17"></file</b><span id="ubkp41" style="color: black"><b id="bw6l18">></b></span></span></span><br id="ubkp42" /><span id="ubkp43" style="color: rgb(0,153,0)"><span id="ubkp44" style="color: black"><b id="bw6l19"></audio</b><span id="ubkp45" style="color: black"><b id="bw6l20">></b></span></span></span>

当然,这个 XML 文件在我接这活儿的时候已经预先给了。但我想使用 DomIt! 创建这样的一个文件作为本系列的第一部分内容,同时也是为了展示 DomIt! 的强大和易用。

 

首先我们要做的是调用 DomIt! 的库文件(到这里,下载、解压 DomIt! 库并将所有的文件放入与下面将要创建的程序文件相同的目录),并创建一个 DomIt! 文档实例:

<span id="ubkp52" style="color: rgb(177,177,0)">require_once</span><span id="ubkp53" style="color: rgb(0,153,0)">(</span><span id="ubkp54" style="color: rgb(0,0,255)">xml_domit_include.php</span><span id="ubkp55" style="color: rgb(0,153,0)">)</span><span id="ubkp56" style="color: rgb(51,153,51)">;</span><br id="ubkp57" /><span id="ubkp58" style="color: rgb(0,0,51)">$xmlDoc</span><span id="ubkp59" style="color: rgb(51,153,51)">=&</span><span id="ubkp60" style="color: rgb(0,0,0)"><b id="bw6l21">new</b></span>DOMIT_Document<span id="ubkp61" style="color: rgb(0,153,0)">(</span><span id="ubkp62" style="color: rgb(0,153,0)">)</span><span id="ubkp63" style="color: rgb(51,153,51)">;</span><span id="ubkp126" style="color: rgb(102,102,102)"><i id="bw6l23">// 文档实例</i></span>

注意“&”符号是用来兼容 PHP4 的。

 

这样我们就准备好一个实例可以按需使用了。看到 XML 文件内容中的第一行了么?没错,我们要添加 XML 的文件声明:

<span id="ubkp68" style="color: rgb(0,0,51)">$xmlDecl</span><span id="ubkp69" style="color: rgb(51,153,51)">=&</span><span id="ubkp70" style="color: rgb(0,0,51)">$xmlDoc</span><span id="ubkp71" style="color: rgb(51,153,51)">-></span><span id="ubkp72" style="color: rgb(0,64,0)">createProcessingInstruction</span><span id="ubkp73" style="color: rgb(0,153,0)">(</span><span id="ubkp74" style="color: rgb(0,0,255)">xml</span><span id="ubkp75" style="color: rgb(51,153,51)">,</span><span id="ubkp76" style="color: rgb(0,0,255)">version="1.0"</span><span id="ubkp77" style="color: rgb(0,153,0)">)</span><span id="ubkp78" style="color: rgb(51,153,51)">;</span><br id="ubkp79" /><span id="ubkp80" style="color: rgb(0,0,51)">$xmlDoc</span><span id="ubkp81" style="color: rgb(51,153,51)">-></span><span id="ubkp82" style="color: rgb(0,64,0)">appendChild</span><span id="ubkp83" style="color: rgb(0,153,0)">(</span><span id="ubkp84" style="color: rgb(0,0,51)">$xmlDecl</span><span id="ubkp85" style="color: rgb(0,153,0)">)</span><span id="ubkp86" style="color: rgb(51,153,51)">;</span>

在这我们可以看到声明信息也被当作是一个子节点做处理,也算是合理的定义。但这里我们可以发现 createProcessingInstruction() 方法存在一个明显的缺点——只有两个声明参数(通常我们可能还会定义编码之类的 XML 声明信息)。幸运的是我们使用的是一个开源的库,也就是说我们可以轻易地将它修改定制以满足要求。如果你实在需要帮助来修改这个特定的方法以添加足够的 XML 文件声明信息(如编码等),我将在本系列的最后一篇中加以介绍。
 

 

让我们回到正题。完成 XML 文件声明部分后,我们在 XML 文件内容中看到的是“audio”标签。它是这个 XML 文件中的根元素(根节点)。让我们来创建这部分:

<span id="ubkp92" style="color: rgb(0,0,51)">$rootElement</span><span id="ubkp93" style="color: rgb(51,153,51)">=&</span><span id="ubkp94" style="color: rgb(0,0,51)">$xmlDoc</span><span id="ubkp95" style="color: rgb(51,153,51)">-></span><span id="ubkp96" style="color: rgb(0,64,0)">createElement</span><span id="ubkp97" style="color: rgb(0,153,0)">(</span><span id="ubkp98" style="color: rgb(0,0,255)">audio</span><span id="ubkp99" style="color: rgb(0,153,0)">)</span><span id="ubkp100" style="color: rgb(51,153,51)">;</span><br id="ubkp101" /><span id="ubkp102" style="color: rgb(0,0,51)">$xmlDoc</span><span id="ubkp103" style="color: rgb(51,153,51)">-></span><span id="ubkp104" style="color: rgb(0,64,0)">appendChild</span><span id="ubkp105" style="color: rgb(0,153,0)">(</span><span id="ubkp106" style="color: rgb(0,0,51)">$rootElement</span><span id="ubkp107" style="color: rgb(0,153,0)">)</span><span id="ubkp108" style="color: rgb(51,153,51)">;</span>

你不需要担心标签关闭的问题,DomIt! 已经完全替你做好了。利用类似的方法,我们将建立“audio”的子节点——“file”元素;在“file”元素内,还包含了几个姊妹元素“track”、“caption”和“record”及它们的文字内容。既然创建它们时都要用到一个主要的方法 appendChild(),我们可以归纳到一

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/486494.htmlTechArticle有一次我拿到了个处理 XML 文件的活儿。这个 XML 文件是用来跟 Flash mp3 播放器做通信使用的,包含了音乐的地址、描述等。我需要做的仅仅...
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP 세션에 저장된 데이터를 어떻게 수정합니까?PHP 세션에 저장된 데이터를 어떻게 수정합니까?Apr 27, 2025 am 12:23 AM

tomodifyDatainAphPessess, startSessionstession_start (), 그런 다음 $ _sessionToset, modify, orremovevariables.

PHP 세션에 배열을 저장하는 예를 제시하십시오.PHP 세션에 배열을 저장하는 예를 제시하십시오.Apr 27, 2025 am 12:20 AM

배열은 PHP 세션에 저장할 수 있습니다. 1. 세션을 시작하고 session_start ()를 사용하십시오. 2. 배열을 만들고 $ _session에 저장하십시오. 3. $ _session을 통해 배열을 검색하십시오. 4. 세션 데이터를 최적화하여 성능을 향상시킵니다.

Garbage Collection은 PHP 세션에 어떻게 효과가 있습니까?Garbage Collection은 PHP 세션에 어떻게 효과가 있습니까?Apr 27, 2025 am 12:19 AM

PHP 세션 쓰레기 수집은 만료 된 세션 데이터를 정리하기위한 확률 메커니즘을 통해 트리거됩니다. 1) 구성 파일에서 트리거 확률 및 세션 수명주기를 설정합니다. 2) CRON 작업을 사용하여 고재 응용 프로그램을 최적화 할 수 있습니다. 3) 데이터 손실을 피하기 위해 쓰레기 수집 빈도 및 성능의 균형을 맞춰야합니다.

PHP에서 세션 활동을 어떻게 추적 할 수 있습니까?PHP에서 세션 활동을 어떻게 추적 할 수 있습니까?Apr 27, 2025 am 12:10 AM

PHP의 사용자 세션 활동 추적은 세션 관리를 통해 구현됩니다. 1) Session_start ()를 사용하여 세션을 시작하십시오. 2) $ _session 배열을 통해 데이터를 저장하고 액세스하십시오. 3) 세션 _destroy ()를 호출하여 세션을 종료합니다. 세션 추적은 사용자 행동 분석, 보안 모니터링 및 성능 최적화에 사용됩니다.

데이터베이스를 사용하여 PHP 세션 데이터를 저장할 수있는 방법은 무엇입니까?데이터베이스를 사용하여 PHP 세션 데이터를 저장할 수있는 방법은 무엇입니까?Apr 27, 2025 am 12:02 AM

데이터베이스를 사용하여 PHP 세션 데이터를 저장하면 성능 및 확장 성을 향상시킬 수 있습니다. 1) 세션 데이터를 저장하기 위해 MySQL 구성 : php.ini 또는 php 코드에서 세션 프로세서를 설정하십시오. 2) 사용자 정의 세션 프로세서 구현 : 데이터베이스와 상호 작용하기 위해 열린, 닫기, 읽기, 쓰기 및 기타 기능을 정의합니다. 3) 최적화 및 모범 사례 : 인덱싱, 캐싱, 데이터 압축 및 분산 스토리지를 사용하여 성능을 향상시킵니다.

PHP 세션의 개념을 간단한 용어로 설명하십시오.PHP 세션의 개념을 간단한 용어로 설명하십시오.Apr 26, 2025 am 12:09 AM

phpsessionstrackuserdataacrossmultiplepagerequestsususingauniqueIdStoredInAcookie.here'showtomanagetheMeftically : 1) STARTASESSIONSTART_START () andSTAREDATAIN $ _SESSION.2) RegenerATERATESSESSIDIDAFTERLOGINWITHSESSION_RATERATERATES (True) TopreventSES

PHP 세션에 저장된 모든 값을 어떻게 반복합니까?PHP 세션에 저장된 모든 값을 어떻게 반복합니까?Apr 26, 2025 am 12:06 AM

PHP에서 세션 데이터를 통한 반복은 다음 단계를 통해 달성 할 수 있습니다. 1. Session_start ()를 사용하여 세션을 시작하십시오. 2. $ _session 배열의 모든 키 값 쌍을 통해 Foreach 루프를 통과합니다. 3. 복잡한 데이터 구조를 처리 할 때 is_array () 또는 is_object () 함수를 사용하고 print_r ()를 사용하여 자세한 정보를 출력하십시오. 4. Traversal을 최적화 할 때 페이징을 사용하여 한 번에 많은 양의 데이터를 처리하지 않도록 할 수 있습니다. 이를 통해 실제 프로젝트에서 PHP 세션 데이터를보다 효율적으로 관리하고 사용하는 데 도움이됩니다.

사용자 인증에 세션을 사용하는 방법을 설명하십시오.사용자 인증에 세션을 사용하는 방법을 설명하십시오.Apr 26, 2025 am 12:04 AM

이 세션은 서버 측 상태 관리 메커니즘을 통해 사용자 인증을 인식합니다. 1) 세션 생성 및 고유 ID의 세션 생성, 2) ID는 쿠키를 통해 전달됩니다. 3) ID를 통해 서버 저장 및 세션 데이터에 액세스합니다. 4) 사용자 인증 및 상태 관리가 실현되어 응용 프로그램 보안 및 사용자 경험이 향상됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.