コード例 #1
0
function get_array()
{
    XML_PullParser_excludeBlanks(true);
    XML_PullParser_trimCdata(true);
    global $doc, $fn_names;
    $tags = array("simplelist");
    $child_tags = array('member');
    $parser = new XML_PullParser_doc($doc, $tags, $child_tags);
    while ($token = $parser->XML_PullParser_getToken()) {
        $parser->XML_PullParser_getElement('member');
        $which = 1;
        while ($member = $parser->XML_PullParser_getText('member', $which)) {
            if (preg_match('/XML_PullParser(_\\w+)\\W/', $member, $matches)) {
                $fn_names[$matches[1]] = array();
            }
            $which++;
        }
    }
    $parser->XML_PullParser_free();
}
コード例 #2
0
<registrant>mturner.org </registrant>
</server> 
<server ip="192.168.10.2"> example_2.com  </server> 
<server ip="192.168.10.3"> example_3.com  </server> 
<alias> www.example.com  </alias> 
</ENTRY>';
$tags = array("Entry");
$child_tags = array("server");
$parser = new XML_PullParser_doc($doc, $tags, $child_tags);
while ($token = $parser->XML_PullParser_getToken()) {
    $servers = $parser->XML_PullParser_getElement('server');
    $servers = $parser->XML_PullParser_childXCL($servers);
    $seq = $parser->XML_PullParser_getSequence($servers);
    for ($i = 0; $i < count($seq); $i++) {
        list($server, $which) = each($seq[$i]);
        $name = $parser->XML_PullParser_getText($server, $which);
        echo "Name: {$name} \n";
        $ip = $parser->XML_PullParser_getAttributes($server, $which);
        echo "\tIP: " . $parser->XML_PullParser_getAttrVal('ip', $ip) . "\n";
    }
}
/*
 Result
Name:
example_1.com
        IP: 192.168.10.1
Name:  example_2.com
        IP: 192.168.10.2
Name:  example_3.com
        IP: 192.168.10.3
*/