2011-02-10 5 views
0

Я успешно написал сайт, который анализирует файл PHP и занимается открытием/закрытием тегов, путем его обмена с HTML.PHP XML Parsing Question

Дело в том, что я знаю, как разбирать весь файл. Что делать, если я хотел только разобрать часть файла?

Я уже знаю, как прокручивать теги 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. Они позволяют вам получить доступ к XML как вложенные PHP-структуры данных.

Если вам нужен поток, ориентированный на поток, расширение (большие файлы), то XMLReader может быть проще.

+0

спасибо за ваш ответ ... на самом деле я использовал XML Parser, потому что это было просто ... мне нужно было прочитать структуру вложенных тегов ... например и и выплевывать html на основе тега сам .... мой предыдущий опыт работы с simpleXML заключался в том, что он кормил меня только данными, а не самими тегами. Есть ли способ использовать simpleXML для прокрутки тегов, пока я не получу то, что хочу, а затем просто проанализирую этот раздел? – Craig

+0

Привет Крейг, вы можете использовать XPath для доступа к любому узлу или набору узлов в XML-файле. Xpath - это очень полезный язык запросов для XML. Вы можете использовать выражения Xpath в SimpleXML, как описано здесь: http://php.net/manual/en/simplexmlelement.xpath.php Учебники для XPath сами вы найдете несколько в Интернете. – Marko