Home > Backend Development > PHP Tutorial > PHP XML file interpretation class application example, phpxml class application example_PHP tutorial

PHP XML file interpretation class application example, phpxml class application example_PHP tutorial

WBOY
Release: 2016-07-13 10:18:28
Original
950 people have browsed it

PHP’s XML file interpretation application example, phpxml application example

The example in this article describes PHP's XML file interpretation class and its usage, which is a very practical technique. Share it with everyone for your reference. The details are as follows:

XMLParser.class.php class file is as follows:

<&#63;php 
/** XML 文件分析类 
*  Date:  2013-02-01 
*  Author: fdipzone 
*  Ver:  1.0 
* 
*  func: 
*  loadXmlFile($xmlfile)   读入xml文件输出Array 
*  loadXmlString($xmlstring) 读入xmlstring 输出Array 
*/ 
 
class XMLParser{ 
 
  /** 读取xml文件 
  * @param String $xmlfile 
  * @return Array 
  */ 
  public function loadXmlFile($xmlfile){ 
    // get xmlfile content 
    $xmlstring = file_exists($xmlfile)&#63; file_get_contents($xmlfile) : ''; 
    // parser xml 
    list($flag, $data) = $this->parser($xmlstring); 
    return $this->response($flag, $data); 
  } 
 
  /** 读取xmlstring 
  * @param String $xmlstring 
  * @return Array 
  */ 
  public function loadXmlString($xmlstring){ 
    // parser xml 
    list($flag, $data) = $this->parser($xmlstring); 
    return $this->response($flag, $data); 
  } 
 
  /** 解释xml内容 
  * @param  String $xmlstring 
  * @return Array 
  */ 
  private function parser($xmlstring){ 
    $flag = false; 
    $data = array(); 
    // check xml format 
    if($this->checkXmlFormat($xmlstring)){ 
      $flag = true; 
      // xml to object 
      $data = simpleXML_load_string($xmlstring, 'SimpleXMLElement', LIBXML_NOCDATA); 
      // object to array 
      $this->objectToArray($data); 
    } 
    return array($flag, $data); 
  } 
 
  /** 检查xml格式是否正确 
  * @param String $xmlstring 
  * @return boolean 
  */ 
  private function checkXmlFormat($xmlstring){ 
    if($xmlstring==''){ 
      return false; 
    } 
    $xml_parser_obj = xml_parser_create(); 
 
    if(xml_parse_into_struct($xml_parser_obj, $xmlstring, $vals, $indexs)===1){ // 1:success 0:fail 
      return true; 
    }else{ 
      return false; 
    } 
  } 
 
  /** object 转 Array 
  * @param object $object 
  * @return Array 
  */ 
  private function objectToArray(&$object){ 
     
    $object = (array)$object; 
     
    foreach($object as $key => $value){ 
      if($value==''){ 
        $object[$key] = ""; 
      }else{ 
        if(is_object($value) || is_array($value)){ 
          $this->objectToArray($value); 
          $object[$key] = $value; 
        } 
      } 
    } 
  } 
 
  /** 输出返回 
  * @param boolean $flag true:false 
  * @param Array  $data 转换后的数据 
  * @return Array 
  */ 
  private function response($flag=false, $data=array()){ 
    return array($flag, $data); 
  } 
} 
&#63;>

Copy after login

Demo sample program is as follows:

<&#63;php 
require "XMLParser.class.php"; 
 
$xmlfile = 'file.xml'; 
$xmlstring = '<&#63;xml version="1.0" encoding="utf-8"&#63;> 
<xmlroot> 
<status>1000</status> 
<info></info> 
<result><id>100</id> 
<name>fdipzone</name> 
<gender>1</gender> 
<age>28</age> 
</result> 
</xmlroot>'; 
echo '<pre class="brush:php;toolbar:false">'; 
$xml_parser = new XMLParser(); 
echo "response xmlfile\r\n"; 
list($flag, $xmldata) = $xml_parser->loadXmlFile($xmlfile); 
if($flag){ 
  print_r($xmldata); 
} 
echo "response xmlstring\r\n"; 
list($flag, $xmldata) = $xml_parser->loadXmlString($xmlstring); 
if($flag){ 
  print_r($xmldata); 
} 
echo '
'; ?>
Copy after login

For information about PHP’s XML predefined constants, please refer to the official documentation:
http://www.php.net/manual/en/libxml.constants.php

I hope this article will be helpful to everyone’s learning of PHP programming.

How to generate xml file in php

#Use dom to generate xml. Note that there will be no spaces in the generated xml.
$dom=new DOMDocument('1.0','utf-8');
$path="test.xml"; // $path is the storage path of the xml file.

$module=$dom->createElement('newmodule');// root node
$dom->appendChild($module);

$year=$dom ->createElement('year'); // add attribute node
$name=$dom->createAttribute('name');
$name->nodeValue="Latest News";
$year->setAttributeNode($name);
$module->appendChild($year);

$news=$dom->createElement('news');
$year->appendChild($news);

$date=$dom->createElement('date');
$date_value=$dom->createTextNode('01-24' );
$date->appendChild($date_value);
$news->appendChild($date);

$title=$dom->createElement('title') ;
$title_value=$dom->createTextNode('');
$title->appendChild($title_value);
$news- >appendChild($title);

$info=$dom->createElement('info');
$info_value=$dom->createTextNode(' ]]>');
$ info->appendChild($info_value);
$news->appendChild($info);

echo $dom->saveXML();
$dom->save( $path);
?>

Read xml content in php file

<%
dim xml,objNode,objAtr,nCntChd,nCntAtr
Set xml=Server.CreateObject("Microsoft.XMLDOM")
xml.Async=False
xml.Load( Server.MapPath("test.xml"))

Set objNode=xml.documentElement
nCntChd=objNode.ChildNodes.length-1

'This can define asp to read xml files The value to be read is determined by passing this value

for i=0 to nCntChd
set objAtr=objNode.ChildNodes.item(i)
nCntAtr=objAtr.Attributes. length-1

'Traverse all the record items in a record, the record starts from 0

for j=0 to nCntAtr
response.write objAtr.Attributes.item (j).Text&"
"
next
response.write "
"
next

Set objAtr=Nothing
Set objNode=Nothing
Set xml=Nothing
%>
Reference: homepage.yesky.com/369/3074869.shtml

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/882903.htmlTechArticlePHP’s XML file interpretation class application example, phpxml class application example This article describes php’s XML file interpretation class and Its usage is a very practical skill. Share it with everyone for your reference. Tool...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template