Jump to content

XML parsing


Sakunne

Recommended Posts

I need to parse XML and this article helped me a lot:

http://www.phpfreaks.com/tutorial/handling-xml-data

 

The next thing I need is to parse only elements that meet certain conditions, lets say we have an XML with structure like this:

<Result>

<Line>

<StockCode>0101009</StockCode>

<Description>Description</Description>

<ProductGroup>S01</ProductGroup>

<Availability>0</Availability>

</Line>

...

</Result>

I need to parse only the elements with ProductGroup = S01 and Availability = 1

 

How can I do that :-\

Link to comment
Share on other sites

Just parse the whole thing and directly access those tags.

 

$xmlString = <<<XML
<Result>
    <Line>
        <StockCode>0101009</StockCode>
        <Description>Description</Description>
        <ProductGroup>S01</ProductGroup>
        <Availability>0</Availability>
    </Line>
</Result>
XML;

$xmlObj = new SimpleXMLElement($xmlString);

var_dump($xmlObj); // Will show you the structure of the object. Can't remember how it structures it.

Link to comment
Share on other sites

to expand on what CPD said,

 

You will need to run a foreach with conditionals to meet your criteria.

$lines =& $xmlObj->line;

foreach( $lines as $line ):
{
if( $line->ProductGroup == 'S01' && $line Availability != '0' )
{
	echo 'meets condition';
}
}

[/code]

Link to comment
Share on other sites

Thanks!

 

Can I do the same thing with 'SimpleXML' and 'xpath'

 

Just as CPD showed you

$SOURCE = http://path.to.xml;  // remote file
$SOURCE = "xml string you wish to iterate through";  // local string

$xmlObj = new SimpleXMLElement($SOURCE);

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.