php expat方式解析xml

<?xml version="1.0" encoding="UTF-8"?>
<notes>
	<note>
		<to>George</to>
		<from>John</from>
		<heading>Reminder</heading>
		<body>Don't forget the meeting!</body>
	</note>
	<note>
		<to>George2</to>
		<from>John2</from>
		<heading>Reminder2</heading>
		<body>Don't forget the meeting!2</body>
	</note>
	<instances>
		<instance st="192.168.234.121" />
		<instance st="192.168.234.28" />
	</instances>
</notes>


<?php
// Initialize the XML parser
$parser = xml_parser_create();

// Function to use at the start of an element
function start($parser, $element_name, $element_attrs)
{
    switch ($element_name) {
        case "NOTE":
            echo "-- Note --<br />";
            break;
        case "TO":
            echo "To: ";
            break;
        case "FROM":
            echo "From: ";
            break;
        case "HEADING":
            echo "Heading: ";
            break;
        case "BODY":
            echo "Message: ";
    }
}

// Function to use at the end of an element
function stop($parser, $element_name)
{
    echo "<br />";
}

// Function to use when finding character data
function char($parser, $data)
{
    echo $data;
}

// Specify element handler
xml_set_element_handler($parser, "start", "stop");

// Specify data handler
xml_set_character_data_handler($parser, "char");

// Open XML file
// $fp = fopen("test.xml", "r");
// Read data
// while ($data = fread($fp, 10)) {
// xml_parse($parser, $data, feof($fp)) or die(sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
// }
// fclose($fp);

$data = file_get_contents("test.xml");
xml_parse($parser, $data) or die(sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
// Free the XML parser
xml_parser_free($parser);

?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值