示例#1
0
function showDoc($title, $morestuff = '')
{
    global $testdoc;
    echo '<h4>', $title, '</h4>', '<pre>', htmlspecialchars($morestuff ? $morestuff : $testdoc->xmd_xml()), '</pre>';
}
$sometag1 = $testdoc->xmd_add_element('sometag');
$testdoc->xmd_set_attribute(0, 'owner', 'rene');
$testdoc->xmd_add_text('text in my first child element', $sometag1);
showDoc('Small XML document');
$sometag2 = $testdoc->xmd_add_element('sometag', 0, array('x' => 'somevalue'));
$testdoc->xmd_add_text('bizarre <text> in "my& 2nd child', $sometag2);
$testdoc->xmd_add_text(' + more text in first one', $sometag1);
$testdoc->xmd_set_attribute($sometag2, 'owner', '<c&a">');
$testdoc->xmd_add_element('innertag', $sometag2);
showDoc('Slightly changed');
showDoc('All text', $testdoc->xmd_text());
$stuff = '';
foreach ($testdoc->xmd_get_element($sometag2) as $key => $value) {
    $stuff .= $key . ': ' . $value . "\n";
}
showDoc('Children, attributes, name and parent of 2nd sometag', $stuff);
$testdoc->xmd_remove_nodes('text in my first child element', $sometag1);
// note: remove text may remove more than one node...
$testdoc->xmd_set_attribute(0, 'owner', 'haentjens');
// new value
showDoc('Text removed from 1st sometag, docroot owner changed');
$testdoc->xmd_remove_element($sometag2);
$sometag2 = $testdoc->xmd_add_text_element('��', 'alors!');
showDoc('2nd sometag replaced by new subelement with French name');
$testdoc->name[$sometag2] = 'sometag';
// properties are read/write
示例#2
0
 function _find_keywords($d)
 {
     $dd = new xmddoc($d);
     if ($dd->error) {
         return NULL;
     }
     $regs = array();
     // for use with ereg()
     foreach ($dd->attributes[0] as $name => $value) {
         if ($name == 'kw' && ereg('^<?([^>]+)>?$', $value, $regs)) {
             $kwa = array_map('trim', explode(',', $regs[1]));
             if (ereg('^<' . ($tag = $dd->name[0]) . '[^>]*>(.*)</' . $tag . '>$', $d, $regs)) {
                 $htdc = array_flip(get_html_translation_table(HTML_ENTITIES));
                 $d = strtr(ereg_replace('<((/?(b|big|i|small|sub|sup|u))|br/)>', '[\\1]', $regs[1]), $htdc);
                 // then  &amp; ->  &  etc.
                 $d = strtr(str_replace("\r\n", " ", $d), "\r\n", "  ");
             } else {
                 $d = $dd->xmd_text();
             }
             array_push($kwa, $d);
             return $kwa;
         }
     }
     return NULL;
 }