From 75c303bf7c570748a5564de6e266cc40f75b1697 Mon Sep 17 00:00:00 2001
From: Antonio Ospite <ao2@ao2.it>
Date: Tue, 28 Dec 2021 23:49:39 +0100
Subject: [PATCH 1/1] Tweeper.php: fix Invalid Character Error when converting
 Instagram json to XML

Converting Instagram json data to XML was failing with the following
message:

  PHP Fatal error:  Uncaught DOMException: Invalid Character Error in
  /usr/share/php/Symfony/Component/Serializer/Encoder/XmlEncoder.php:445

This was caused by some item starting with a number which resulted in
invalid XML element names.

Remove the items containing the problematic names from the json data
before converting to XML.

Also stop handling the "knobs" element which does not seem to be there
anymore.
---
 src/Tweeper.php | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/Tweeper.php b/src/Tweeper.php
index de1f474..f79bb08 100644
--- a/src/Tweeper.php
+++ b/src/Tweeper.php
@@ -312,13 +312,11 @@ class Tweeper {
 
     $data = json_decode($matches[1], $assoc = TRUE);
 
-    // The "qe" object contains elements which will result in invalid XML
-    // element names, so remove it.
+    // Remove items that may contain elements which can result in invalid XML
+    // element names (for example names starting with a number).
     unset($data["qe"]);
-
-    // The "knobs" object contains elements with undefined namespaces, so
-    // remove it to silence an error message.
-    unset($data["knobs"]);
+    unset($data["knobx"]);
+    unset($data["to_cache"]);
 
     // Stop here in case Instagram redirected to the login page, this can
     // happen when too many consecutive requests have been made from the same
-- 
2.1.4