Php 可以将HTML内容添加到SimpleXMLElement节点
简单的问题。是否可以在不将HTML数据自动转换为实体格式的情况下,在SimpleXMLElement(或者事实上,DOMDocument)节点中添加HTML块 例如,以这个代码段为例(此处使用DOMDocument,但SimpleXMLElement的行为完全相同):Php 可以将HTML内容添加到SimpleXMLElement节点,php,html,entity,simplexml,domdocument,Php,Html,Entity,Simplexml,Domdocument,简单的问题。是否可以在不将HTML数据自动转换为实体格式的情况下,在SimpleXMLElement(或者事实上,DOMDocument)节点中添加HTML块 例如,以这个代码段为例(此处使用DOMDocument,但SimpleXMLElement的行为完全相同): 输出为: <p>some <a>stuff</a></p> 一些东西 如果查看源代码,您将看到: <?xml version="1.0" encoding="utf-8
输出为:
<p>some <a>stuff</a></p>
一些东西
如果查看源代码,您将看到:
<?xml version="1.0" encoding="utf-8"?>
<content><p>some <a>stuff</a></p></content>
psome astuff/a/p
。。。HTML块已自动转换为实体格式
甚至用CDATA包装块也没有帮助,因为CDATA的尖括号也会被转换
那么,有没有一种方法可以像这样添加HTML块而不执行这种自动转换
谢谢,
实际上,这种行为是非常需要的。您可以创建一个新元素(
content
),并为其分配一个新的元素。如果文本包含XML特殊字符,它们将在最终序列化中转换
如果不希望出现这种行为,首先必须显式地使用字符串创建元素节点。这是你可以做的,例如,用。然后用添加元素。实际上,这种行为是非常需要的。您可以创建一个新元素(
content
),并为其分配一个新的元素。如果文本包含XML特殊字符,它们将在最终序列化中转换
如果不希望出现这种行为,首先必须显式地使用字符串创建元素节点。这是你可以做的,例如,用。然后使用添加元素。问题在于您正在创建一个XML文档,而SimpleXMLElement会创建有效的标记 原始HTML标记不是有效的XML,因此被过滤掉
要创建CDATA区域,您可以尝试问题是您正在创建一个XML文档,而SimpleXMLElement会创建有效的标记 原始HTML标记不是有效的XML,因此被过滤掉
要创建CDATA区域,您可以尝试我相信我在阅读php手册时找到了一个解决方案 DOMDocument有一个名为的成员方法,它将帮助您实现这一点,尽管方式很复杂 以下是使用此新方法发布的上述代码的版本:
<?php
$dom = new DOMDocument( '1.0', 'utf-8' );
$de = $dom->createElement( 'content' );
$dd = $dom->createCDataSection( '<p>some <a>stuff</a></p>' );
$de->appendChild( $dd );
$dom->appendChild( $de );
echo $dom->saveXML();
?>
输出是所需的
<?xml version="1.0" encoding="utf-8"?>
<content><![CDATA[<p>some <a>stuff</a></p>]]></content>
一些东西]>
这将帮助任何面临类似问题的人开始行动
欢迎提供更多建议:)
干杯,
我相信我在阅读php手册时找到了一个解决方案 DOMDocument有一个名为的成员方法,它将帮助您实现这一点,尽管方式很复杂 以下是使用此新方法发布的上述代码的版本:
<?php
$dom = new DOMDocument( '1.0', 'utf-8' );
$de = $dom->createElement( 'content' );
$dd = $dom->createCDataSection( '<p>some <a>stuff</a></p>' );
$de->appendChild( $dd );
$dom->appendChild( $de );
echo $dom->saveXML();
?>
输出是所需的
<?xml version="1.0" encoding="utf-8"?>
<content><![CDATA[<p>some <a>stuff</a></p>]]></content>
一些东西]>
这将帮助任何面临类似问题的人开始行动
欢迎提供更多建议:)
干杯,
是的。我刚才也有同样的想法。。谢谢你的意见:)是的。我刚才也有同样的想法。。谢谢你的意见:)谢谢你的建议。非常感谢。谢谢你的建议。非常感谢。