Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#CC++MFCDelphiFoxProJavaPerlPythonRubySQL ServerVBScript

PHP ActiveX Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3


 

 

 

 

 

 

 

 

(PHP using ActiveX) XML SearchForAttribute Method

Demonstrates the SearchForAttribute method.

The input XML, available at http://www.chilkatsoft.com/data/fruitSearch.xml, is this:

<root>
    <searchRoot>
        <fruit color="red">apple</fruit>
        <fruit color="green">pear</fruit>
        <veg color="orange">carrot</veg>
        <meat animal="cow">beef</meat>
        <xyz>
            <fruit color="blue">blueberry</fruit>
            <veg color="green">broccoli</veg>
        </xyz>
        <fruit color="purple">grape</fruit>
        <cheese color="yellow">cheddar</cheese>
    </searchRoot>
    <fruit color="red">strawberry</fruit>
    <fruit color="orange">peach</fruit>
    <root></root>
</root>

Download Chilkat XML ActiveX

<?php

$xml = new COM("Chilkat.Xml");

//  The sample input XML is available at http://www.chilkatsoft.com/data/fruitSearch.xml
$success = $xml->LoadXmlFile('fruitSearch.xml');
if ($success != 1) {
    print $xml->lastErrorText() . "\n";
    exit;
}

//  Search the sub-tree rooted at "searchRoot"
// xSearchRoot is a Chilkat.Xml
$xSearchRoot = $xml->FindChild('searchRoot');

//  Search for all "fruit" nodes having a color attribute
//  where the name of the color ends in "e"
// xBeginAfter is a Chilkat.Xml
$xBeginAfter = null;
// xFound is a Chilkat.Xml
$xFound = $xSearchRoot->SearchForAttribute($xBeginAfter,'fruit','color','*e');
while (!(is_null($xFound))) {

    print $xFound->content() . ': ' . $xFound->getAttrValue('color') . "\n";

    // xBeginAfter is a Chilkat.Xml
    $xBeginAfter = $xFound;
    // xFound is a Chilkat.Xml
    $xFound = $xSearchRoot->SearchForAttribute($xBeginAfter,'fruit','color','*e');
}

//  The correct output is:
//  grape: purple
//  blueberry: blue

print '--------------------------' . "\n";

//  ---------------------------------------------------------------------------------
//  Now do the same, but instead use SearchForAttribute2
//  which updates the internal reference of the caller instead
//  of returning the found node.

// xBeginAfter is a Chilkat.Xml
$xBeginAfter = $xSearchRoot->GetSelf();
// xSearch is a Chilkat.Xml
$xSearch = $xSearchRoot->GetSelf();

$success = $xSearch->SearchForAttribute2($xBeginAfter,'fruit','color','*e');
while ($success == 1) {

    print $xSearch->content() . ': ' . $xSearch->getAttrValue('color') . "\n";

    //  Copy the internal references so that the next search
    //  begins after the found node.
    $xBeginAfter->CopyRef($xSearch);
    $xSearch->CopyRef($xSearchRoot);

    $success = $xSearch->SearchForAttribute2($xBeginAfter,'fruit','color','*e');
}


?>

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.