<?php
// @parser 解析器
// @element 标签名字
// @attribs 属性
function xml_start ($parser, $element, $attribs) {
echo $element . "\n";
}
// @parser 解析器
// @element 标签
function xml_end($parser, $element) {
echo $element . "\n";
}
function xml_content($parser, $data) {
echo $data . "\n";
}
class First {
function main () {
$xmlStr = '
<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>
';
// 初始化一个XML解析器
$parser = xml_parser_create();
// 遇到开始标签调用xml_start(), 结束调用xml_end()函数
xml_set_element_handler($parser, "xml_start", "xml_end");
// 标签有内容调用xml_content()
xml_set_character_data_handler($parser, "xml_content");
// xml解析
xml_parse($parser, $xmlStr, true);
// 释放内存
xml_parser_free($parser);
}
}
class Second {
var $xmlStr = '
<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>';
function main() {
// 加载XML
$XML = simplexml_load_string($this->xmlStr);
// 知道XML标签内容可以直接使用标签名
echo $XML->ToUserName;
}
}
//$first = new First();
//$first->main();
$second = new Second();
$second->main();
?>