Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 7 of 7
  1. #1
    Regular Coder Redcoder's Avatar
    Join Date
    May 2012
    Location
    /dev/null
    Posts
    335
    Thanks
    2
    Thanked 49 Times in 48 Posts

    Simple PHP XML parsing

    I'm trying to break down this XML file containing the below code:

    Code:
    <stockreport>
    <timestamp>08/09/2012 08:46:02</timestamp>
    <version>2.0</version>
    <products>
    <product type="main">
             <code>1</code>
             <name>Table</name>
             <stock>43</stock>
             <status>In Stock</status>
    </product>
    <product type="main">
             <code>2</code>
             <name>Chair</name>
             <stock>64</stock>
             <status>In Stock</status>
    </product>
    </stockreport>
    
    I want inorder to display it in a table. I'm using the below PHP code:
    PHP Code:
    <?php
    $url 
    file_get_contents('http://www.topshinellc.com/feed/status-xml.asp.xml'); //The path to the XML file
    $data_s = new SimpleXMLElement($url);
    echo 
    "<table border='1' >";
    echo 
    "<tr><th width='200'><h4>code</h4></th><th width='200'><h4>Name</h4></th><th width='200'><h4>Stock</h4></th><th width='200'><h4>Status</h4></td></th></tr>";
    foreach(
    $data_s as $data)
    {
    echo <<<EOF
    <tr>
    <td width='200'>$key
    {$data->product->code}</td>
    <td width='200'>
    {$data->product->name}</td>
    <td width='200'>
    {$data->product->stock}</td>
    <td width='200'>
    {$data->product->status}</td>
    </tr>
    EOF;
    }
    echo 
    "</table>";
    Instead of getting two rows, only the first row is being displayed.
    Like This:
    Code Name Stock Status
    1 Table 64 In Stock
    What is wrong or missing in the code?. Of course this code will need to parse hundreds of such XML tags containing the data.
    Last edited by Redcoder; 09-10-2012 at 07:01 PM.

  • #2
    Senior Coder
    Join Date
    Jan 2011
    Location
    Missouri
    Posts
    4,676
    Thanks
    25
    Thanked 653 Times in 652 Posts
    In your xml file you don't close the <products> tag.

    Code:
    <td width='200'>$key{$data->product->code}</td>
    $key not defined. You get one row if $key is removed.

  • #3
    Regular Coder Redcoder's Avatar
    Join Date
    May 2012
    Location
    /dev/null
    Posts
    335
    Thanks
    2
    Thanked 49 Times in 48 Posts
    I didn't get an answer here so I figured that it was because of the PHP part therefore maybe most of the people who visited the XML forum used other languages. I reposted it http://www.codingforums.com/showthread.php?t=272632 and got an answer.

    But thanks for pointing that out.

    Off-topic: Isn't there a way of marking a thread as resolved?

  • #4
    Moderator
    Join Date
    May 2002
    Location
    Hayward, CA
    Posts
    1,461
    Thanks
    1
    Thanked 23 Times in 21 Posts
    FYI, we really don't like it when the same question is asked in more than one forum. Moderators and WA are happy to move threads from one thread to another, as needed. Shame on you!

    I actually don't know how to mark a thread resolved.
    "The first step to confirming there is a bug in someone else's work is confirming there are no bugs in your own."
    June 30, 2001
    author, Verbosio prototype XML Editor
    author, JavaScript Developer's Dictionary
    https://alexvincent.us/blog

  • #5
    Regular Coder Redcoder's Avatar
    Join Date
    May 2012
    Location
    /dev/null
    Posts
    335
    Thanks
    2
    Thanked 49 Times in 48 Posts
    Quote Originally Posted by Alex Vincent View Post
    I actually don't know how to mark a thread resolved.
    How do you not know? Your a MOD dammit.


    The option is either there or it isn't there.

  • #6
    Senior Coder
    Join Date
    Jan 2011
    Location
    Missouri
    Posts
    4,676
    Thanks
    25
    Thanked 653 Times in 652 Posts
    Edit your original post. Next to the title is a dropdown. That will set things to resolved.

  • #7
    Regular Coder Redcoder's Avatar
    Join Date
    May 2012
    Location
    /dev/null
    Posts
    335
    Thanks
    2
    Thanked 49 Times in 48 Posts
    Quote Originally Posted by Alex Vincent View Post
    FYI, we really don't like it when the same question is asked in more than one forum. Moderators and WA are happy to move threads from one thread to another, as needed. Shame on you!

    I actually don't know how to mark a thread resolved.
    Quote Originally Posted by sunfighter View Post
    Edit your original post. Next to the title is a dropdown. That will set things to resolved.
    Neat. Although I thought MOD's should know that hehe.



  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •