<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE value SYSTEM "../../_common/value.dtd" [ <!ENTITY list1 ' <val type="num">0.0</val> <val type="num">3.0</val> <val type="num">4.0</val> <val type="num">5.0</val> <val type="num">6.0</val> <val type="num">8.0</val>'>]><param name='list1'>&list1</param> |
<?php // 建立节点开始Tag解析函数(得到解析Handle指定后)function starting_handler($parser, $elementname, $attributes) { print "Starting handler for $elementname <BR />"; } // 建立节点结束Tag解析函数(得到解析句柄后)[size=+0]function ending_handler($parser, $elementname) { print "Ending handler for $elementname <BR />"; } $xmlfile = 'myxmlfile.xml'; // 创建parser对象 $xmlparser = xml_parser_create(); // 建立解析对Tag所指向的函数名称Handle指定 xml_set_element_handler($xmlparser, "starting_handler", "ending_handler"); // 打开XML文件并按字节读取解析$fp = fopen($xmlfile,'r'); while ($xmldata = fread($fp,1024)) { // 解析字节数据并将其进行解析 if (!xml_parse($xmlparser, $xmldata, feof($fp))) { // 如果解析遇到问题则显示错误信息及错误行列信息情况。 die( print "ERROR: " . xml_error_string(xml_get_error_code($xmlparser)) . "<BR />" . "Line: " . xml_get_current_line_number($xmlparser) . "<BR />" . "Column: " . xml_get_current_column_number($xmlparser) . "<BR />"); } } // 释放解析对象,结构解析xml_parser_free($xmlparser); ?> |
<?php // 建立DOMDocument对象,并规定解析方式(XML1.0,UTF-8编码)$dom = new DOMDocument("1.0","UTF-8"); // 载入需解析的xml文件 $dom->Load('book.xml'); // 建立Xpath对象并对指定DOM对象进行解析准备 $xpath = new DOMXPath($dom); // 根据要求建立XPath所需解析文字$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[@name= "en"]';//使用Xpath对象的query()或evaluate()对解析文字进行解析,并获得解析结果 $entries = $xpath->query($query); foreach ($entries as $entry) { echo "Found {$entry-> nodeValue}" . } ?> |
<?php// 根据要求建立XPath所需解析文字 $xpathstr = "/infomation/part[@name='PHP']/book"; // 打开需解析的xml文件$dom = domxml_open_file($xmlfile);// 对指定dom建立xpath解析对象并$xpath = xpath_new_context($dom); // 对解析文字按照Xpath进行解析,并获得解析结果$books = xpath_eval($xpath, $xpathstr); foreach ($books as $book){ // 判断获得的节点若为Element类型且Tagname为“book”则输出结果 if($book->type == XML_ELEMENT_NODE and $book->tagname() == "book"){ echo "BookList".$book->get_attribute("type")."BookName".$book->get_content(); } } ?> |
<?php // 建立XML文字列 $string = <<<XML<a> <b> <c>text</c> <c>stuff</c> </b> <d> <c>code</c> </d></a>XML;`// 输入XML文字列并进行解析$xml = simplexml_load_string($string);// 按照Xpath方式解析,并查找结构为<a><b><c>的节点信息$result = $xml->xpath('/a/b/c'); // 对获得的节点信息进行输出while(list( , $node) = each($result)) { echo '/a/b/c: ',$node,"\n"; } // 再次进行解析,查找结构为<b><c>的节点信息$result = $xml->xpath('b/c'); while(list( , $node) = each($result)) { echo 'b/c: ',$node,"\n"; } ?> |
欢迎光临 天空小小岛技术网站 (http://tkxxd.net/) | Powered by Discuz! X3.1 |