Solved

XML parser

Posted on 2004-10-10
3
241 Views
Last Modified: 2013-11-19
Hi all,
        Can anyone help me about this how do I parse a xml file using php?  for example i need a attribute named "USER" in the xml file.  How do I get this value from an xml and use it in an php file?

Thanks alot to all
!!
0
Comment
Question by:Kaiwap
  • 2
3 Comments
 
LVL 48

Expert Comment

by:hernst42
ID: 12272837
See: http://www.php.net/manual/en/function.xml-parse-into-struct.php
In the comments there are a lot of examples how to do this or how to get a strcuture wich can be searched /accessed easyer
0
 

Author Comment

by:Kaiwap
ID: 12289563
I am sorry but i m not very good in this script.
for example i have
<?xml version = "1.0" encoding="Windows-874" ?>

      <user>user</user>
      <password>pwd</password>
                <filename>picture.jpg</filename>
      <content>albkja;dlkjoasdihfashdf;kj;eifjo;eijf</content>

if i only want the values in the filename and contents and show it on the other page
Can you give me a sample of how it is done?  
0
 
LVL 48

Accepted Solution

by:
hernst42 earned 250 total points
ID: 12290965
Have a look at this example:

<?php

$data = '<?xml version = "1.0" encoding="Windows-874" ?>
<tag>
     <user>user</user>
     <password>pwd</password>
                <filename>picture.jpg</filename>
     <content>albkja;dlkjoasdihfashdf;kj;eifjo;eijf</content>
     <user>user</user>
     <password>pwd</password>
                <filename>picture2.jpg</filename>
     <content>albkja;dlkjoasdihfassdfdshdf;kj;eifjo;eijf</content>
</tag>
';

$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);
$result = array();
foreach($index['FILENAME'] as $num => $id) {
    $result[] = array(
        'filename' => $vals[$id]['value'],
        'content'  => $vals[$index['CONTENT'][$num]]['value'],
        );
}

// for debugging/understanding the structures:
var_dump($vals);
var_dump($index);
var_dump($result);

$result will contain:
Array
(
    [0] => Array
        (
            [filename] => picture.jpg
            [content] => albkja;dlkjoasdihfashdf;kj;eifjo;eijf
        )

    [1] => Array
        (
            [filename] => picture2.jpg
            [content] => albkja;dlkjoasdihfassdfdshdf;kj;eifjo;eijf
        )

)

This will only work correctly if you have the same count of fielname and contents tag and if the are in the same xml-level.
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

What is Node.js? Node.js is a server side scripting language much like PHP or ASP but is used to implement the complete package of HTTP webserver and application framework. The difference is that Node.js’s execution engine is asynchronous and event…
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.

803 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question