我正在使用PHP的DOM对象为我的网站创建HTML页面.这对我来说非常有用,但是由于我将在身体中输入大量HTML(而不是通过DOM),我认为我需要使用DOM->createElement($bodyHTML)将我的HTML从我的网站添加到DOM对象.
但DOM->createElement似乎解析所有HTML实体,所以我的最终结果最终显示在页面上的HTML而不是实际呈现HTML.
我目前正在使用hack来实现这一点,
$body = $this->DOM
->createComment('DOM Glitch--><body>'.$bodyHTML."</body><!--Woot");
Run Code Online (Sandbox Code Playgroud)
这将我的所有站点代码放在评论中,我在评论中绕过并手动添加<body>标签.
目前这种方法有效,但我相信应该有更合适的方法.理想情况下,类似的东西DOM->createElement()不会解析任何字符串.
我也试过使用DOM->createDocumentFragment()但是它不喜欢一些字符串所以它会出错并且不起作用(除了占用额外的CPU能力来重新解析正文的HTML).
所以,我的问题是,除了使用之外,还有更好的方法DOM->createComment()吗?
Mar*_*c B 14
您使用DOMDocumentFragment objec将任意HTML块插入另一个文档.
$dom = new DOMDocument();
@$dom->loadHTML($some_html_document); // @ to suppress a bajillion parse errors
$frag = $dom->createDocumentFragment(); // create fragment
$frag->appendXML($some_other_html_snippet); // insert arbitary html into the fragment
$node = // some operations to find whatever node you want to insert the fragment into
$node->appendChild($frag); // stuff the fragment into the original tree
Run Code Online (Sandbox Code Playgroud)
lan*_*rat -1
我花了很多时间研究 Anthony Forloney 的答案,但我似乎无法将 html 附加到正文而不出错。
@Mark B:我尝试这样做,但正如我在评论中所说,它在我的 html 上出错了。
我忘记添加以下内容,我的解决方案:
我决定让我的 html 对象变得更简单,并允许我不使用 DOM 而只使用字符串来做到这一点。
| 归档时间: |
|
| 查看次数: |
12435 次 |
| 最近记录: |