Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 248
  • Last Modified:

XML parser

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
Kaiwap
Asked:
Kaiwap
  • 2
1 Solution
 
hernst42Commented:
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
 
KaiwapAuthor Commented:
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
 
hernst42Commented:
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

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now