相关疑难解决方法(0)

如何在php DOMDocument中导入XML字符串

例如,我创建了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)

php xml xhtml simplexml domdocument

7
推荐指数
1
解决办法
1万
查看次数

PHP Dom文件html更快还是preg_match_all函数更快?

我怀疑哪一个处理速度更快?

使用curl函数的dom文件或preg_match_all在html页面解析中更快?将dom文件功能留在其他服务器上如curl函数吗?例如,在curl函数中,我们使用用户代理来定义谁正在访问,但在dom文档中没有任何内容.

php dom

4
推荐指数
1
解决办法
2927
查看次数

DOMDocument appendXML带有特殊字符

我正在从我的数据库中检索一些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)

html php domdocument

1
推荐指数
2
解决办法
5553
查看次数

标签 统计

php ×3

domdocument ×2

dom ×1

html ×1

simplexml ×1

xhtml ×1

xml ×1