>  기사  >  백엔드 개발  >  PHP가 DOM과 simplexml을 사용하여 xml 문서를 읽는 방법의 예

PHP가 DOM과 simplexml을 사용하여 xml 문서를 읽는 방법의 예

高洛峰
高洛峰원래의
2017-02-10 16:47:041435검색

이 글에서는 주로 PHP가 DOM과 simplexml을 사용하여 xml 문서를 읽는 방법을 소개합니다. DOM과 simplexml을 사용하여 xml 파일을 예제 형식으로 생성하고 로드하고 읽는 PHP의 관련 작업 기술을 분석합니다. 다음을 참조할 수 있습니다.

이 기사의 예는 PHP가 DOM과 simplexml을 사용하여 xml 문서를 읽는 방법을 설명합니다. 다음과 같이 참조용으로 모든 사람과 공유하십시오.

예 DOM을 사용하여 다음 xml 문서에서 모든 Jin Yong 소설의 제목을 얻습니다. xml 문서의 위치는 ./books.xml입니다.

<?xml version="1.0" encoding="utf-8"?>
<root>
 <book>
  <title>天龙八部</title>
  <author>金庸</author>
 </book>
 <book>
  <title>陆小凤</title>
  <author>古龙</author>
 </book>
 <book>
  <title>倚天屠龙记</title>
  <author>金庸</author>
 </book>
 <book>
  <title>西游记</title>
  <author>吴承恩</author>
 </book>
 <book>
  <title>神雕侠侣</title>
  <author>金庸</author>
 </book>
 <book>
  <title>射雕英雄传</title>
  <author>金庸</author>
 </book>
</root>

DOM 코드를 사용하여 구현:

DOM 읽기 xml 문서 단계: 1. DOM 객체 생성——》2 .DOM 문서 컨텐츠 로드——>3. 읽을 컨텐츠가 있는 태그를 가로채십시오.——>읽을 컨텐츠를 가져옵니다.

header(&#39;Content-type:text/html;charset=utf-8&#39;);
$arr=array();
$dom = new DOMDocument();//创建DOM对象
$dom->load(&#39;./books.xml&#39;);//载入xml文档
print_r($dom);
echo &#39;<hr>&#39;;
$dom = $dom->getElementsByTagName(&#39;book&#39;);//截取标签
for($i=0;$i<$dom->length;$i++){
 if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText==&#39;金庸&#39;){
  $arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.&#39;<br />&#39;;//获取内容
 }
}
print_r($arr);

getElementsByTagName 및 childNodes를 사용한 후 반환되는 것은 객체이므로 반환하는 객체에 항목이 하나만 포함되어 있어도 이후에는 item(int)을 사용해야 합니다. , item(0)에도 지정해야 합니다. 그렇지 않으면 오류가 발생합니다.

simplexml 코드를 사용하여 구현:

$simxml = simplexml_load_file(&#39;./books.xml&#39;);
$t = $simxml->book;
$arr=array();
foreach ($t as $v){
 if($v->author==&#39;金庸&#39;){
  $arr[] = (string)$v->title;
 }
}
print_r($arr);

simplexml_load_file을 사용한 후 객체가 반환되고, 객체는 둘 다 객체와 배열이 있습니다. 객체이든 배열이든 foreach를 사용하여 내용을 반복할 수 있습니다. 이 인스턴스에서 얻은 마지막 콘텐츠인 $v->title은 실제로는 객체이므로 string을 사용하여 문자열로 변환해야 합니다.

PHP가 DOM과 simplexml을 사용하여 xml 문서와 관련 기사를 읽는 방법에 대한 더 많은 예를 보려면 PHP 중국어 웹사이트에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.