Esempio n. 1
0
$doc = '<DNS>
<ENTRY> 
<ipaddress type="primary">172.20.19.6 </ipaddress> 
<server ip="192.168.10.1" registrant="example.com"> example_1.com </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> 

</DNS>
';
require_once "XML_PullParser.inc";
$parser = new XML_PullParser_doc($doc, array("Entry"), array('server'));
while ($token = $parser->XML_PullParser_getToken()) {
    $parser->XML_PullParser_getElement('server');
    $parser->XML_PullParser_setAttrLoop();
    while ($attr = $parser->XML_PullParser_nextAttr()) {
        foreach ($attr[1] as $attr_name => $attr_value) {
            echo "{$attr['0']}: {$attr_name} => {$attr_value}\n";
        }
        echo "\n";
    }
}
//      echo XML_PullParser_Errors_Trace() . "\n";
/*
    Result
        SERVER: IP => 192.168.10.1
        SERVER: REGISTRANT => example.com

        SERVER: IP => 192.168.10.2
Esempio n. 2
0
$child_tags = array("name", "lastname");
$parser = new XML_PullParser_doc($doc, $tags, $child_tags);
$entry = $parser->XML_PullParser_getToken();
// the default token here will be $entry
echo "Getting lastname\n";
echo "Using token from XML_PullParser_getToken(), i.e &lt;ENTRY>. . .&lt;/ENTRY>\n";
printf("%20s  %4s  %-8s  %s\n", "\$el     ", "\$which", "  \$xcl", "Result");
for ($i = 0; $i < 4; $i++) {
    display_result("lastname", $i);
}
echo "\nUsing token from XML_PullParser_getElement('name')\n";
printf("%20s  %4s  %-8s  %s\n", "\$el     ", "\$which", "  \$xcl", "Result");
/* the default token will be $parser->current_element, which will be an array
       consisting of 'name' elements and their descendents 
   */
$parser->XML_PullParser_getElement('name');
for ($i = 0; $i < 4; $i++) {
    display_result("lastname", $i);
}
echo "\nUsing token from XML_PullParser_getElement('lastname')\n";
printf("%20s  %4s  %-8s  %s\n", "\$el     ", "\$which", "  \$xcl", "Result");
/* the default token will be $parser->current_element, which will be an array
       consisting of 'lastname' elements -- unlike 'name' it has no descendents 
   */
$last_name = $parser->XML_PullParser_getElement('lastname');
for ($i = 0; $i < 4; $i++) {
    display_result("lastname", $i);
}
function display_result($el, $which)
{
    global $parser;
Esempio n. 3
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();
}
Esempio n. 4
0
    <map src="&lt;" dest="6" /> 
    <map src="bc" dest="$1" />
    <map src="e" dest="3" />
    <map src="abd" dest="*" />
    <map src="ad" dest="@" />  
    <map src="abd" dest="*" />
    <map src="ad" dest="@" />
  </mappings>
</keymap>';
echo "\$which technique\n";
$tags = array("keymap");
$child_tags = array("map");
$parser = new XML_PullParser_doc($doc, $tags, $child_tags);
$token = $parser->XML_PullParser_getToken();
$which = 1;
$maps = $parser->XML_PullParser_getElement('map');
while ($map = $parser->XML_PullParser_getAttributes($maps, $which)) {
    echo "src => " . $map['SRC'] . "\n";
    // attribute names must use caps since case-folding is in effect
    echo "dest => " . $map['DEST'] . "\n\n";
    $which++;
}
echo "\nXML_PullParser_nextElement technique\n";
while ($server = $parser->XML_PullParser_nextElement()) {
    $attr_array = $parser->XML_PullParser_getAttributes($server);
    $src = $parser->XML_PullParser_getAttrVal("src", $attr_array);
    // method takes case-folding into account
    $dest = $parser->XML_PullParser_getAttrVal("dest", $attr_array);
    echo "src: {$src}, dest: {$dest}\n";
}
echo "\n";
Esempio n. 5
0
}
XML_PullParser_excludeBlanks(true);
XML_PullParser_trimCdata(true);
$tags = array("entry");
$child_tags = array("name");
$parser = new XML_PullParser_doc($doc, $tags, $child_tags);
$entry = $parser->XML_PullParser_getToken();
echo "Using token from XML_PullParser_getToken(), i.e &lt;ENTRY>. . .&lt;/ENTRY>\n";
printf("%20s  %4s  %-8s  %s\n", "\$el     ", "\$which", "  \$xcl", "Result");
for ($i = 0; $i < 6; $i++) {
    display_result($entry, $i);
    display_result("name", $i);
}
echo "\nUsing token from XML_PullParser_getElement('name')\n";
printf("%20s  %4s  %-8s  %s\n", "\$el     ", "\$which", "  \$xcl", "Result");
$name = $parser->XML_PullParser_getElement('name');
for ($i = 0; $i < 6; $i++) {
    display_result($name, $i);
    display_result("name", $i);
}
function display_result($el, $which)
{
    global $parser;
    $type = "";
    if (is_array($el)) {
        $token = $parser->XML_PullParser_getElementName($el);
        $type = "token({$token})";
    } else {
        $name = $el;
        $type = "string({$name})";
    }