php函数simplexml_load_string转xml的小坑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php函数simplexml_load_string转xml的小坑相关的知识,希望对你有一定的参考价值。

1、如下代码报错:

<?php
$xml = "<xml> <ToUserName>< ![CDATA[toUser] ]></ToUserName> <FromUserName>< ![CDATA[fromUser] ]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType>< ![CDATA[text] ]></MsgType> <Content>< ![CDATA[this is a test] ]></Content> <MsgId>1234567890123456</MsgId> </xml>";
$obj=simplexml_load_string($xml,‘SimpleXMLElement‘,LIBXML_NOCDATA);
var_dump($obj);
$obj1=simplexml_load_string($xml,‘SimpleXMLElement‘);
var_dump($obj1);
?>

php调试错误提示:Warning: simplexml_load_string(): Entity: line 1: parser error : StartTag: invalid element name in C:\wamp64\www1\test1.php on line 4

2、后来重新书写了xml数据,调试通过,返回值成功

<?php
$xml = "<xml>
<ToUserName>
<![CDATA[toUser]]>
</ToUserName>
<FromUserName>
<![CDATA[fromUser]]>
</FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType>
<![CDATA[text]]>
</MsgType>
<Content>
<![CDATA[this is a test]]>
</Content>
<MsgId>1234567890123456</MsgId>
</xml>";
$obj=simplexml_load_string($xml,‘SimpleXMLElement‘,LIBXML_NOCDATA);
var_dump($obj);
$obj1=simplexml_load_string($xml,‘SimpleXMLElement‘);
var_dump($obj1);
?>

3、注意加入LIBXML_NOCDATA参数后的区别,结果如下:

var_dump($obj)如下:

C:\wamp64\www1\test1.php:20:
object(SimpleXMLElement)[1]
public ‘ToUserName‘ => string ‘
toUser
‘ (length=12)
public ‘FromUserName‘ => string ‘
fromUser
‘ (length=14)
public ‘CreateTime‘ => string ‘1348831860‘ (length=10)
public ‘MsgType‘ => string ‘
text
‘ (length=10)
public ‘Content‘ => string ‘
this is a test
‘ (length=20)
public ‘MsgId‘ => string ‘1234567890123456‘ (length=16)

var_dump($obj1)如下:

C:\wamp64\www1\test1.php:22:
object(SimpleXMLElement)[2]
public ‘ToUserName‘ =>
object(SimpleXMLElement)[3]
public ‘FromUserName‘ =>
object(SimpleXMLElement)[4]
public ‘CreateTime‘ => string ‘1348831860‘ (length=10)
public ‘MsgType‘ =>
object(SimpleXMLElement)[5]
public ‘Content‘ =>
object(SimpleXMLElement)[6]
public ‘MsgId‘ => string ‘1234567890123456‘ (length=16)

以上是关于php函数simplexml_load_string转xml的小坑的主要内容,如果未能解决你的问题,请参考以下文章

什么是PHP的函数?

php如何根据函数名打印出函数内容

php之快速入门学习-15(php函数)

PHP走进 PHP 第五课 函数

PHP基础入门PHP函数基础

如何用自定义函数文件对另一个php里的函数重写