php json simplexml_load_string(),simplexml_load_string( )函数问题?

如果XML文档使用的字符编码不是UTF-8(8-bit ASCII文本也是可接受的UTF-8)或者UTF-16,那么它必须在XML声明中提供字符编码声明,否则XML Parser可能会出错。当然,即使对字符编码进行了声明,Parser也可能不能够处理(不支持该编码),但能够正确地给出提示信息。(由于XML声明是使用基本的ASCII文本书写的,Parser能够正确地读出它的内容。)

. 导入MSXML

首先,需要导入MSXML头文件和库到VC6.0工程中。有两种导入方式:6U6Linux联盟

(1)自动方式,在源代码中添加如下两行程序即可:6U6Linux联盟

#import 6U6Linux联盟

using namespace MSXML2;6U6Linux联盟

(2)手动方式(有存在的理由么?呵呵)6U6Linux联盟

a)找到MSXML 4.0 SDK的安装目录,去发现两个子目录inc和lib;6U6Linux联盟

b)在VC选项中,将MSXML 4.0下inc和lib子目录添加到默认的头文件和库文件搜索路径中;6U6Linux联盟

c)在使用MSXML的源文件中包含头文件;6U6Linux联盟

d)在工程设置中将msxml2.lib添加到要链接的库中。

以自动方式导入MSXML,会在你的工程目录下(或者Debug/Release下)生成两个头文件msxml4.tlh和msxml4.tli(前者为头文件声明,后者为内联函数定义文件)。

----------------------------------------------------------------------

-----------------------------------------------------------------------如果是遍历一个未知XML文档,就需要使用IXMLDOMDocumentPtr的documentElement获得根元素,使用 IXMLDOMNodePtr的firstChild、nextSibling成员获得一个节点的所有子节点;使用IXMLDOMNodePtr的 nodeType成员来判断节点类型(元素、属性、文本,等等),使用text成员得到文本值,使用nodeName成员得到节点名。还可以使用 IXMLDOMDocumentPtr、IXMLDOMNodePtr等的xml成员获得相应的xml字符串。另详细的资料请参考MSXML 4.0 SDK文档。

另外,在程序中动态创建的text节点的text值的数据量大小是有限的,在我的机器上测试发现(默认VC配置),使用256K的数据还正常,但使用512K的数据时就Stack Overflow了。但是,加载XML文档时是没有问题的,其数据量并不受此限制。

最后,在你使用MSXML DOM时,请清醒地认识到它在内部是一颗树的表示,任何数据都是以节点形式存在的。That’s all!

----------------------------------------------------------------------

--------------------------------------------------------------------

$xml = simplexml_load_string($string, 'SimpleXMLElement', LIBXML_NOCDATA); 这样就可以了。

---------------------------------------------------------------

-----------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值