2011-02-10 109 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