我可以使用DOM回显W3C规范中的所有HTML标记吗?

won*_*ana 2 php dom

我正在使用这个简单的PHP HTML解析器:http://simplehtmldom.sourceforge.net.是否可以使用它来回显HTML规范的所有标记?

Gor*_*don 5

干得好:

$dom = new DOMDocument;
$dom->load('http://www.w3.org/2002/08/xhtml/xhtml1-transitional.xsd');
$xsns = 'http://www.w3.org/2001/XMLSchema';
$elements = array();
foreach ($dom->getElementsByTagNameNS($xsns, 'element') as $element) {
    if ($element->hasAttribute('name')) {
        echo $element->getAttribute('name');
        $docs = $element->getElementsByTagNameNS($xsns, 'documentation');
        foreach ($docs as $doc) {
            echo "\t", $doc->nodeValue;
        }
        echo PHP_EOL;
    }
}
Run Code Online (Sandbox Code Playgroud)

以上代码将输出XHTML1 Transitional(非HTML)的Schema定义(非DTD)中的所有Element类型以及任何文档,例如

pre
      content is "Inline" excluding
         "img|object|applet|big|small|sub|sup|font|basefont"
Run Code Online (Sandbox Code Playgroud)

它使用PHP的本机DOM扩展来实现.DOM扩展使用下面的libxml,在速度方面优于SimpleHtmlDom,并提供对标记的控制.DOM接口是与语言无关的W3C规范.

有关DOM扩展的替代方法,请参阅