| | |
Need some help with parsing an XML file
Please support our PHP advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
![]() |
•
•
Join Date: Feb 2006
Posts: 1
Reputation:
Solved Threads: 0
Hello everyone
I am learning how to parse XML files with PHP. And I cant figure out how to do something. Any help is greatly appreciated
Here is a sample XML file that I am trying to parse:
I am trying to parse this file so if no.1 is entered the information from the 1st node is shown. How can I do this? any help is appreciated.
Here is the php code to prase the xml document
I am learning how to parse XML files with PHP. And I cant figure out how to do something. Any help is greatly appreciated
Here is a sample XML file that I am trying to parse:
•
•
•
•
<?xml version="1.0"?>
<emailsList>
<email no="1">
<from>
whatever@yahoo.com
</from>
<to>
yyy@yahoo.com
</to>
<subject>
Just te test
</subject>
<body>
Helloooooo
</body>
</email>
<email no="2">
<from>
whatever@hotmail.com
</from>
<to>
yyy@hotmail.com
</to>
<subject>
Just to test2
</subject>
<body>
Hiiiiiiii
</body>
</email>
</emailsList>
Here is the php code to prase the xml document
•
•
•
•
<?php
$xml = xml_parser_create();
$obj = new Parser_Object; // a class to assist with parsing
xml_set_object($xml,$obj);
xml_set_element_handler($xml, 'start_element', 'end_element');
xml_set_character_data_handler($xml, 'character_data');
xml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, false);
$fp = fopen('data.xml', 'r') or die("Can't read XML data.");
while ($data = fread($fp, 4096)) {
xml_parse($xml, $data, feof($fp)) or die("Can't parse XML data");
}
fclose($fp);
xml_parser_free($xml);
class pc_RSS_item
{
var $from = '';
var $to = '';
var $subject = '';
var $body='';
function display() {
printf('<p><a href="%s">%s</a><br />%s</p>',
$this->link,htmlspecialchars($this->title),
htmlspecialchars($this->description));
}
}
class pc_RSS_parser
{
var $tag;
var $item;
function start_element($parser, $tag, $attributes)
{
if ('item' == $tag) {
$this->item = new pc_RSS_item;
} elseif (!empty($this->item)) {
$this->tag = $tag;
}
}
function end_element($parser, $tag) {
if ('item' == $tag) {
$this->item->display();
unset($this->item);
}
}
function character_data($parser, $data) {
if (!empty($this->item)) {
if (isset($this->item->{$this->tag})) {
$this->item->{$this->tag} .= trim($data);
}
}
}
}
?>
You can try the XML_Serializer if you can use PEAR: http://pear.php.net/package/XML_Serializer
It will let your convert XML 2 Array and Array 2 XML. Great tool.
It will let your convert XML 2 Array and Array 2 XML. Great tool.
Check out my class_xml.php. It should make this job easy for you.
http://www.troywolf.com/articles/php/class_xml/
http://www.troywolf.com/articles/php/class_xml/
![]() |
Similar Threads
- parsing conf file in c++ (C++)
- [urgent] HTML form => XML file (JSP)
- Eliminating Whitespace characters while parsing XML Files using DOM (Java)
- xml file parsing in c++ (C++)
- Parsing xml file (Python)
- problem reading xml file in c# (C#)
- parsing error (XML file-java-schema) (Java)
- Pass XML file contents to a hash table. (Java)
Other Threads in the PHP Forum
- Previous Thread: Dynamic Include
- Next Thread: Need Advise On Clever Algorithm
| Thread Tools | Search this Thread |
apache api array basics beginner binary broken buttons cakephp checkbox class cms code codingproblem combobox cron curl database date datepart display dynamic echo email error file files filter folder form format forms forum function functions global google head href htaccess html image include insert ip javascript joomla limit link list login mail malfunctioning memmory memory menu mlm multiple mysql nodes number oop parameter parsing password paypal pdf php problem query radio random recourse recursiveloop remote script search seo server sessions snippet source sp space sql static syntax system table tutorial up-to-date update upload url validator variable video web webdesign youtube





