例如,我创建了DOMDocument这样的:
<?php
$implementation = new DOMImplementation();
$dtd =
$implementation->createDocumentType
(
'html', // qualifiedName
'-//W3C//DTD XHTML 1.0 Transitional//EN', // publicId
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-'
.'transitional.dtd' // systemId
);
$document = $implementation->createDocument('', '', $dtd);
$elementHtml = $document->createElement('html');
$elementHead = $document->createElement('head');
$elementBody = $document->createElement('body');
$elementTitle = $document->createElement('title');
$textTitre = $document->createTextNode('My bweb page');
$attrLang = $document->createAttribute('lang');
$attrLang->value = 'en';
$document->appendChild($elementHtml);
$elementHtml->appendChild($elementHead);
$elementHtml->appendChild($attrLang);
$elementHead->appendChild($elementTitle);
$elementTitle->appendChild($textTitre);
$elementHtml->appendChild($elementBody);
Run Code Online (Sandbox Code Playgroud)
那么,现在,如果我有一些像这样的xhtml字符串:
<?php
$xhtml = '<h1>Hello</h1><p>World</p>';
Run Code Online (Sandbox Code Playgroud)
如何在<body>我的节点中导入它DOMDocument?
就目前而言,我发现的唯一解决方案是这样的:
<?php
$simpleXmlElement = new SimpleXMLElement($xhtml);
$domElement = dom_import_simplexml($simpleXmlElement);
$domElement …Run Code Online (Sandbox Code Playgroud) 我怀疑哪一个处理速度更快?
使用curl函数的dom文件或preg_match_all在html页面解析中更快?将dom文件功能留在其他服务器上如curl函数吗?例如,在curl函数中,我们使用用户代理来定义谁正在访问,但在dom文档中没有任何内容.
我正在从我的数据库中检索一些html字符串,我想将这些字符串解析为我的DOMDocument.问题是,DOMDocument会在特殊字符处发出警告.
警告:DOMDocumentFragment :: appendXML()[domdocumentfragment.appendxml]:实体:第2行:解析器错误:实体'nbsp'未在第189行的page.php中定义
我想知道为什么,我想知道如何解决这个问题.这是我页面的一些代码片段.我该如何解决这些警告?
$doc = new DOMDocument();
// .. create some elements first, like some divs and a h1 ..
while($row = mysql_fetch_array($result))
{
$messageEl = $doc->createDocumentFragment();
$messageEl->appendXML($row['message']); // gives it's warnings here!
$otherElement->appendChild($messageEl);
}
echo $doc->saveHTML();
Run Code Online (Sandbox Code Playgroud)
我还发现了一些关于验证的内容,但是当我应用它时,我的页面将不再加载.我试过的代码是这样的.
$implementation = new DOMImplementation();
$dtd = $implementation->createDocumentType('html','-//W3C//DTD XHTML 1.0 Transitional//EN','http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd');
$doc = $implementation->createDocument('','',$dtd);
$doc->validateOnParse = true;
$doc->formatOutput = true;
// in the same whileloop, I used the following:
$messageEl = $doc->createDocumentFragment();
$doc->validate(); // which stopped my code, but error- and …Run Code Online (Sandbox Code Playgroud)