| | |
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 |
action address advanced ajax apache api array auto autoincrement basics beginner broken cakephp class classes cms code codingproblem combobox cron curl database date datepart domain dynamic email error errorlog file folder form format forms function functions google head href htaccess html image include includingmysecondfileinthechain interactive ip javascript job joomla js limit link load login malfunctioning masterthesis menu multiple mysql nodes oop outofmemmory paging password paypal pdf php popup problem procedure query ram random reference script search server sessions smarty source space sql stored syntax system table traffic tutorial unicode unset up-to-date upload url validation variable video web webapplications websitecontactform youtube





