2011-02-10 110 views
0

我成功地编写了一个网站,解析一个PHP文件,并通过用HTML代替开放/关闭标签来处理。PHP XML解析问题

事情是我只知道如何解析整个文件。如果我只想解析一些文件,该怎么办?

我已经知道如何循环浏览XML标签以找到我想要的部分,但我不知道如何通过该部分进入我已有的分析代码。

这是我现在使用的解析代码:

$p = xml_parser_create(); 

//Set the handling functions 

xml_set_element_handler ($p, 'handle_open_element', 'handle_close_element'); 
xml_set_character_data_handler ($p, 'handle_character_data'); 

// read the file: 

    $file = 'books3.xml'; 
    $fp = @fopen ($file, 'r') or die ("Could not open a file called '$file' .\n</body>\n</html>"); 
    while ($data = fread ($fp, filesize($file))) { 
    xml_parse ($p, $data, feof($fp)); 
    } 

    //free up parser 
    xml_parser_free($p); 

Books3.xml是文件。有以上功能处理打开和关闭标签。我怎样才能编辑这个,以便我只将一部分books3.xml发送给函数。

任何想法?

感谢您的帮助

回答

0

我相信XML解析器功能非常低的水平,有点复杂。如果您只需解析小型XML文件,则使用SimpleXML函数可能会更容易。它们允许您像嵌套的PHP数据结构一样访问XML。

如果您需要面向流的解析扩展(大文件),XMLReader可能是更简单的方法。

+0

感谢您的回复......实际上我使用了XML Parser,因为它很简单......我需要做的是读取嵌套标签的结构......如并根据标签吐出html本身....我以前使用simpleXML的经验是,它给我的只是数据而不是标签本身。有没有办法使用simpleXML来遍历标签,直到我得到我想要的地方,然后解析该部分? – Craig 2011-02-11 14:49:58