Chilkat HOME ASP Visual Basic VB.NET C# C C++ MFC Delphi FoxPro Java Perl Python Ruby SQL Server VBScript
(PHP using ActiveX) XML SearchForAttribute MethodDemonstrates 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>
<?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.