return $xsltProcessor;
}
- private function json_to_xml($html, $json_match_expr, $rootName) {
- // pre-process, convert json to XML
- $ret = preg_match($json_match_expr, $html, $matches);
- if ($ret !== 1) {
- trigger_error("Cannot match expression: $json_match_expr\n", E_USER_ERROR);
- return NULL;
- }
-
+ private function json_to_xml($json, $root_node_name) {
// Apparenty the ObjectNormalizer used afterwards is not able to handle
// the stdClass object created by json_decode() with the default setting
// $assoc = false; so use $assoc = true
- $data = json_decode($matches[1], $assoc = true);
+ $data = json_decode($json, $assoc = true);
if (!$data) {
return NULL;
}
$serializer_options = array (
'xml_encoding' => "UTF-8",
'xml_format_output' => TRUE,
- 'xml_root_node_name' => $rootName,
+ 'xml_root_node_name' => $root_node_name,
);
$xml_data = $serializer->serialize($data, 'xml', $serializer_options);
}
private function get_xml_instagram_com($html) {
- return $this->json_to_xml($html, '/window._sharedData = (.*);/', 'instagram');
+ // extract the json data from the html code
+ $json_match_expr = '/window._sharedData = (.*);/';
+ $ret = preg_match($json_match_expr, $html, $matches);
+ if ($ret !== 1) {
+ trigger_error("Cannot match expression: $json_match_expr\n", E_USER_ERROR);
+ return NULL;
+ }
+
+ return $this->json_to_xml($matches[1], 'instagram');
}
private function preprocess_html_facebook_com($html) {