|
|
|
|
|
|
| |
SimpleXMLParser.php
| <?php
/**
* XML Data/File manipulation
*
* PHP versions 5
*
* @category Front End
* @package Data Parser Layer
* @Date 27 Aug 2008
* @author Deepak Patil <deepak.patil@geodesic.com>
* @modification history
*
*
**/
class SimpleXMLParser
{
private $XMLFile; /* Memeber variable representing name of xml file (with full path)*/
private $conditionalElement; /* Memeber variable representing name of element, will make it as root element */
private $conditionalAttribute; /* Memeber variable representing name of attribute belongs to above element */
private $conditionalAttributeValue; /* Memeber variable representing value for above defined attribute*/
private $xml_parent_node; /* Memeber variable representing parent node, i.e. $conditionalElement into XML */
private $num_parent_node; /* Memeber variable representing number of parent objects presnt into xml */
private $result_child_array; /* Memeber variable representing resulting array */
private $is_result_found; /* Memeber variable representing result presence */
/**
* Sets the XML file and call to loadXML function.
*
* @param string $fileName containning name of xml file.
* @return NUN
* @type CONSTRUCTION
* @scope Public
* @Date 27 Aug 2008
* @author Deepak Patil <deepak.patil@geodesic.com>
* @modification history
*
*
* */
public function __construct($fileName)
{
$this->XMLFile = $fileName;
$this->loadXML();
}
/**
* Loads the xml file data into object.
*
* @param NUN
* @return NUN
* @type FUNCTION
* @scope Private
* @Date 27 Aug 2008
* @author Deepak Patil <deepak.patil@geodesic.com>
* @modification history
*
*
* */
private function loadXML()
{
try{
if (file_exists($this->XMLFile)) {
$this->xml = simplexml_load_file($this->XMLFile);
}else {
throw new Exception("File doesnot exist.",402);
}
}catch(Exception $e){
throw new Exception ("Cannot open the file.",403);
}
}
/**
* Loads the xml file data into object.
*
* @param string $conditionalElement containning attribute which will set as root element.
* string $conditionalAttribute containning attribute of above element,
* string $conditionalAttributeValue containning value for above attribute.
* @return NUN
* @type FUNCTION
* @scope Public
* @Date 27 Aug 2008
* @author Deepak Patil <deepak.patil@geodesic.com>
* @modification history
*
*
* */
public function getChildArray($conditionalElement,$conditionalAttribute,$conditionalAttributeValue)
{
try{
$this->conditionalElement = $conditionalElement;
$this->conditionalAttribute = $conditionalAttribute;
$this->conditionalAttributeValue = $conditionalAttributeValue;
$this->xml_parent_node = $this->xml->{$this->conditionalElement};
$this->num_parent_node = count($this->xml_parent_node);
if($this->num_parent_node<1)
throw new Exception ("XMLManipulation Error::".$e);//return -1;
$this->is_result_found = false;
for($i=0;$i<$this->num_parent_node;$i++)
{
$this->xml_parent_node[$i]->attributes()->{$this->conditionalAttribute};
if($this->xml_parent_node[$i]->attributes()->{$this->conditionalAttribute} == $this->conditionalAttributeValue)
{
$this->result_child_array = Array();
foreach ($this->xml_parent_node[$i] as $key => $value)
{
$item = (string) $key;
$itemvalue = (string) $value;
$this->result_child_array[$item]=$itemvalue;
}
$this->is_result_found = true;
break;
}
}
if(!$this->is_result_found)
$this->is_result_found = -1;
return $this->result_child_array;
}catch(Exception $e){
print_r($e);
throw new Exception ("XMLManipulation Error::".$e);
}
}
};
?> | |
Example Usage
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="DEEPAK PATIL">
<META NAME="Keywords" CONTENT="XML, SimpleXML, XMLParser">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<pre>
<center>
<h1>Demo :: SimpleXML </h1>
<hr>
<form name="sxp">
Select Error Code <select name="errorCode" onchange="document.sxp.submit();">
<option value="-1">Please select the Error Code</option>
<?php
for($i=1001;$i<=1025;$i++)
{
$selected ="";
if(isset($_REQUEST["errorCode"]))
if($i==$_REQUEST["errorCode"])
$selected ="SELECTED";
echo "<option value=".$i." ".$selected.">Error Code : ".$i."</option>";
}
?>
</select>
</form>
<hr>
<?php
if(isset($_REQUEST["errorCode"]))
{
require_once("SimpleXMLParser.php");
$errorCode =$_REQUEST["errorCode"];
$sxp = new SimpleXMLParser('error.xml');
$result = $sxp->getChildArray( "ErrorList","id",$errorCode);
echo "Error Code: <font color='red'>".$errorCode."</font>";
echo "<br>Error Message: <font color='red'>".$result[msg]."</font>";
}
?>
</center></pre>
</BODY>
</HTML> | |
error.xml
| <?xml version="1.0" ?>
<ErrorData>
<ErrorList id="1001">
<msg>UID and Userid are Not Same</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1002">
<msg>UID Is Empty</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1003">
<msg>DATA Is Empty</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1004">
<msg>AUTHSTR Is Empty</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1005">
<msg>Input Data is not in Proper format</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1006">
<msg>Connection String Empty</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1007">
<msg>PRID Invalid</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1008">
<msg>SID Empty</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1009">
<msg>Session Invalid/Expired</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1010">
<msg>Account not active</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1011">
<msg>Missing Parameter User ID</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1012">
<msg>Missing Parameter Password</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1013">
<msg>Missing Parameter Email ID</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1014">
<msg>User Registration Fail</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1015">
<msg>User ID/Passowrd Invalid</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1016">
<msg>User Inactive</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="10017">
<msg>Service Inactive</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1018">
<msg>Success,but EmailID change will happen post confirmation on email</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1019">
<msg>Missing Parameter Amount</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1020">
<msg>Missing Parameter Credit Type</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1021">
<msg>Error in Inserting User details</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1022">
<msg>Error while update User Detail</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1023">
<msg>User Invalid</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1024">
<msg>Error while Checking User Existence</msg>
<displayuser>Y</displayuser>
</ErrorList>
<ErrorList id="1025">
<msg>Error while Checking Unique Token key</msg>
<displayuser>Y</displayuser>
</ErrorList>
</ErrorData> | | |
|
| XPath for PHP without the DOM XML extension Categories : DOM XML, XML, XSLT, PHP Classes, PHP | | | logger class (PHP5 +) Categories : PHP, PHP Classes, Log Files, XML | | | Freshmeat.net XML-RPC - This class is meant to query Freshmeat for information about registered projects. Categories : PHP, PHP Classes, XML, Web Services | | | MySQL or SQL Query to XML Output Categories : PHP, MySQL, XML, Databases | | | Dynamic Loading of XML array data into ComboBox and Display XML data using PHP + DOM + Javascript. Categories : PHP, Java Script, DOM XML, XML, Arrays | | | Amazon.com API, CURL-REST Parser. Obtain data about Amazon products (PHP5 +) Categories : PHP, Ecommerce, XML, Web Services, CURL | | | XML To Array Categories : PHP, PHP Classes, XML, Arrays | | | Trivia Quiz program using XML, XSLT and PHP Categories : PHP, XML, XSLT | | | DBXML- A Class to backup databases in XML Format using web interface Categories : PHP, PHP Classes, Databases, MySQL, XML | | | XML easy parser Categories : PHP, XML, PHP Classes | | | A very basic and fast XML parser Categories : PHP, PHP Classes, XML | | | XML easy parser Categories : PHP, XML | | | TAB_STRUCT Class: Is supporting Class for the DBXML Class Categories : PHP, PHP Classes, MySQL, XML, Databases | | | On-the-fly drop down menu from a txt or xml file Categories : PHP, XML, HTML and PHP | | | Directory Listing To XML : Outputs XML File of a Given Directory Listing Categories : PHP, PHP Classes, XML, Directories | |
|
|
|