30

嗨,我正在将 ajax 用于显示可用课程的网站,我在阅读 xml(其中包含课程详细信息)时遇到问题我正在显示文本(课程描述)。现在我正在跟踪它以获得正确的课程名称(在 xml 文件中),但是在将其与输入课程名称进行比较时,它根本没有比较所以。在某一时刻,我加载了 xml 文件并回显它:

$doc->load('data/ICT.xml'); 
echo"$doc";

它给了我一个错误

可捕获的致命错误:第 23 行的 /home/students/....../www/htdocs/client/unit_details.php 中的 DOMDocument 类的对象无法转换为字符串

所以我从中了解到的是应该将xml dom对象转换为字符串,以便我可以获得所需的数据并使用它,是真的吗?如果是这样的话,有人可以告诉我该怎么做(比如任何功能等)提前谢谢:-)

4

4 回答 4

36

DOMDocument对象不能用作字符串。

以下是将DOMDocument对象显示为 XML 字符串的方法:

echo $doc->saveXML();
于 2012-10-20T12:23:57.733 回答
16

DOMDocument有一种方法SaveHTML(),它旨在完全满足您的需求。

您可以通过以下方式显示整个文档:

$doc->saveHTML();

或者只是某个节点:

$doc->saveHTML( $bodyNode);

DOMDocument还提供了一些选项来增强 XML 的打印方式,例如:

于 2012-10-20T12:25:56.877 回答
5

尝试这个:

$xml = $doc->saveXML($doc->documentElement);
于 2012-10-20T12:34:51.627 回答
-3

您可以使用类型转换

$doc->load('data/ICT.xml'); 
$doc2=(string)$doc;
echo $doc2;

或者您可以使用 PHP 函数

strval();

此函数返回传递给它的参数的字符串值。

于 2012-10-20T12:27:50.947 回答