使用SAX解析器或基于节点的提取仅解析XML特定节点

时间:2016-12-12 08:42:14

标签: php xml xml-parsing

我正在解析整个XML以使用这些方法的调用来创建表单:

 parser('a.xml');

我正在使用这些方法:

 function parser($file) {
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_set_object($parser, $this);

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

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

//Open XML file
    $file_pointer = fopen($file, 'r');

//Read data from the xml file
    while ($data = fread($file_pointer, 4096)) {
        xml_parse($parser, $data, feof($file_pointer)) or
                die(sprintf('XML Error: %s at line %d', xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
    }

//Free XML parser
    xml_parser_free($parser);
}

我正在成功解析完整的xml。

如何在不切换SAX解析器的情况下解析XML文件中的特定节点。

0 个答案:

没有答案