fix(ConfigChanges): do not pass PlistValue to xml_helpers.resolveParent (#158)

Fixes #156
diff --git a/src/ConfigChanges/ConfigChanges.js b/src/ConfigChanges/ConfigChanges.js
index 60fe7cc..de62856 100644
--- a/src/ConfigChanges/ConfigChanges.js
+++ b/src/ConfigChanges/ConfigChanges.js
@@ -311,13 +311,18 @@
 
                 // Check if the edit target will resolve to an existing target
                 if (!target || target.length === 0) {
-                    const file_xml = this.config_keeper.get(this.project_dir, this.platform, editchange.file).data;
-                    const resolveEditTarget = xml_helpers.resolveParent(file_xml, editchange.target);
-                    let resolveTarget;
+                    const targetFile = this.config_keeper.get(this.project_dir, this.platform, editchange.file);
 
+                    // For non-XML files (e.g. plist), the selector in editchange.target uniquely identifies its target.
+                    // Thus we already know that we have no conflict if we are not dealing with an XML file here.
+                    if (targetFile.type !== 'xml') return;
+
+                    // For XML files, the selector does NOT uniquely identify its target. So we resolve editchange.target
+                    // and any existing selectors to their matched elements and compare those for equality.
+                    const resolveEditTarget = xml_helpers.resolveParent(targetFile.data, editchange.target);
                     if (resolveEditTarget) {
                         for (const parent in parents) {
-                            resolveTarget = xml_helpers.resolveParent(file_xml, parent);
+                            const resolveTarget = xml_helpers.resolveParent(targetFile.data, parent);
                             if (resolveEditTarget === resolveTarget) {
                                 conflictingParent = parent;
                                 target = parents[parent];