DTDのツリー表示
DTDを見ていたら、結局、この要素の下には何が書けるの?と分からなくなってきたので、ツリー構造を表示するようにしてみた。PEARのXML_DTDを使ったら、簡単だった。
<?php /** * DTDの読み込みと表示 */ /** PEAR の XML_DTD */ include 'XML/DTD.php'; $dtd = 'XXXXXXXX.dtd'; $parser = new XML_DTD_Parser; $dtdobj = $parser->parse($dtd); // <root>から表示 print_tree('root', 0); /** * XML_DTD_Treeの表示 * @param string $target 表示するDTDのELEMENT名 */ function print_tree($target, $indent) { global $dtdobj; $children = $dtdobj->getChildren($target); // タブでインデント for ($i = 0; $i < $indent; $i++) { echo "\t"; } echo "$target\n"; if ($target == 'XXXX') { // 無限に入れ子になってしまうELEMENTはここではじく。 return; } foreach ($children as $child) { print_tree($child, $indent + 1); } } ?>