From 7c7c2d7d0ecb9782109256a3e33b2b35b83f3cc9 Mon Sep 17 00:00:00 2001
From: bkosborne <bkosborne@788032.no-reply.drupal.org>
Date: Mon, 8 May 2017 14:56:20 -0500
Subject: [PATCH] Issue #2860785 by bkosborne: Allow XML elements to pass
 through as field values to process plugins (for SimpleXML processor)

---
 src/Plugin/migrate_plus/data_parser/SimpleXml.php | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/Plugin/migrate_plus/data_parser/SimpleXml.php b/src/Plugin/migrate_plus/data_parser/SimpleXml.php
index 2e51c9a0..a33b6a08 100644
--- a/src/Plugin/migrate_plus/data_parser/SimpleXml.php
+++ b/src/Plugin/migrate_plus/data_parser/SimpleXml.php
@@ -67,7 +67,12 @@ class SimpleXml extends DataParserPluginBase {
     if ($target_element !== FALSE && !is_null($target_element)) {
       foreach ($this->fieldSelectors() as $field_name => $xpath) {
         foreach ($target_element->xpath($xpath) as $value) {
-          $this->currentItem[$field_name][] = (string) $value;
+          if ($value->children() && !trim((string) $value)) {
+            $this->currentItem[$field_name] = $value;
+          }
+          else {
+            $this->currentItem[$field_name][] = (string) $value;
+          }
         }
       }
       // Reduce single-value results to scalars.
-- 
GitLab